Dia antes primera install

This commit is contained in:
2025-12-08 15:20:28 -06:00
commit 1416478c9c
4130 changed files with 886376 additions and 0 deletions

2
node_modules/json2xls/.npmignore generated vendored Executable file
View File

@@ -0,0 +1,2 @@
node_modules/
example/output.xlsx

5
node_modules/json2xls/.travis.yml generated vendored Normal file
View File

@@ -0,0 +1,5 @@
language: node_js
node_js:
- 0.10
before_script:
- "npm i -g jasmine-node"

15
node_modules/json2xls/example/index.js generated vendored Executable file
View File

@@ -0,0 +1,15 @@
var json2xls = require('../lib/json2xls');
var fs = require('fs');
var json = {
foo: 'bar',
qux: 'moo',
poo: 123,
stux: new Date()
}
var xls = json2xls(json,{
fields: {'poo':'string'}
});
fs.writeFileSync('output.xlsx', xls, 'binary');

99
node_modules/json2xls/lib/json2xls.js generated vendored Normal file
View File

@@ -0,0 +1,99 @@
var nodeExcel = require('excel-export');
var transform = function(json,config) {
var conf = transform.prepareJson(json,config);
var result = nodeExcel.execute(conf);
return result;
};
//get a xls type based on js type
function getType(obj,type) {
if (type) {
return type;
}
var t = typeof obj;
switch (t) {
case 'string':
case 'number':
return t;
case 'boolean':
return 'bool';
default:
return 'string';
}
}
//get a nested property from a JSON object given its key, i.e 'a.b.c'
function getByString(object, path) {
path = path.replace(/\[(\w+)\]/g, '.$1'); // convert indexes to properties
path = path.replace(/^\./, ''); // strip a leading dot
var a = path.split('.');
while (a.length) {
var n = a.shift();
if (n in object) {
object = (object[n]==undefined)?null:object[n];
} else {
return null;
}
}
return object;
}
//prepare json to be in the correct format for excel-export
transform.prepareJson = function(json,config) {
var res = {};
var conf = config||{};
var jsonArr = [].concat(json);
var fields = conf.fields || Object.keys(jsonArr[0]||{});
var types = [];
if (!(fields instanceof Array)) {
types = Object.keys(fields).map(function(key) {
return fields[key];
});
fields = Object.keys(fields);
}
//cols
res.cols = fields.map(function(key,i) {
return {
caption: key,
type: getType(jsonArr[0][key],types[i]),
beforeCellWrite: function(row, cellData, eOpt){
eOpt.cellType = getType(cellData,types[i]);
return cellData;
}
};
});
//rows
res.rows = jsonArr.map(function(row) {
return fields.map(function(key) {
var value = getByString(row,key);
//stringify objects
if(value && value.constructor == Object) value = JSON.stringify(value);
//replace illegal xml characters with a square
//see http://www.w3.org/TR/xml/#charsets
//#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
if (typeof value === 'string') {
value = value.replace(/[^\u0009\u000A\u000D\u0020-\uD7FF\uE000-\uFFFD\u10000-\u10FFFF]/g,'');
}
return value;
});
});
//add style xml if given
if (conf.style) {
res.stylesXmlFile = conf.style;
}
return res;
};
transform.middleware = function(req,res,next) {
res.xls = function(fn,data,config) {
var xls = transform(data,config);
res.setHeader('Content-Type', 'application/vnd.openxmlformats');
res.setHeader("Content-Disposition", "attachment; filename=" + fn);
res.end(xls, 'binary');
};
next();
};
module.exports = transform;

32
node_modules/json2xls/npm-shrinkwrap.json generated vendored Normal file
View File

@@ -0,0 +1,32 @@
{
"name": "json2xls",
"version": "0.1.0",
"dependencies": {
"excel-export": {
"version": "0.3.11",
"from": "excel-export@>=0.3.11 <0.4.0",
"resolved": "https://registry.npmjs.org/excel-export/-/excel-export-0.3.11.tgz",
"dependencies": {
"node-zip": {
"version": "1.1.1",
"from": "node-zip@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/node-zip/-/node-zip-1.1.1.tgz",
"dependencies": {
"jszip": {
"version": "2.5.0",
"from": "jszip@2.5.0",
"resolved": "https://registry.npmjs.org/jszip/-/jszip-2.5.0.tgz",
"dependencies": {
"pako": {
"version": "0.2.8",
"from": "pako@>=0.2.5 <0.3.0",
"resolved": "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz"
}
}
}
}
}
}
}
}
}

BIN
node_modules/json2xls/output.xlsx generated vendored Normal file

Binary file not shown.

15
node_modules/json2xls/package.json generated vendored Normal file
View File

@@ -0,0 +1,15 @@
{
"name": "json2xls",
"version": "0.1.2",
"description": "canonically transform json to an excel document",
"main": "lib/json2xls.js",
"scripts": {
"test": "jasmine-node spec"
},
"repository": "https://github.com/rikkertkoppes/json2xls",
"author": "Rikkert Koppes <rikkert@rikkertkoppes.com",
"license": "BSD-2-Clause",
"dependencies": {
"excel-export": "~0.3.11"
}
}

86
node_modules/json2xls/readme.md generated vendored Executable file
View File

@@ -0,0 +1,86 @@
json2xls
========
[![Build Status](https://travis-ci.org/rikkertkoppes/json2xls.png?branch=master)](https://travis-ci.org/rikkertkoppes/json2xls)
utility to convert json to a excel file, based on [Node-Excel-Export](https://github.com/functionscope/Node-Excel-Export)
Installation
------------
npm install json2xls
Usage
------
Use to save as file:
var json2xls = require('json2xls');
var json = {
foo: 'bar',
qux: 'moo',
poo: 123,
stux: new Date()
}
var xls = json2xls(json);
fs.writeFileSync('data.xlsx', xls, 'binary');
Or use as express middleware. It adds a convenience `xls` method to the response object to immediately output an excel as download.
var jsonArr = [{
foo: 'bar',
qux: 'moo',
poo: 123,
stux: new Date()
},
{
foo: 'bar',
qux: 'moo',
poo: 345,
stux: new Date()
}];
app.use(json2xls.middleware);
app.get('/',function(req, res) {
res.xls('data.xlsx', jsonArr);
});
Options
-------
As a second parameter to `json2xls` or a third parameter to `res.xls`, a map of options can be passed:
var xls = json2xls(json, options);
res.xls('data.xlsx', jsonArr, options);
The following options are supported:
- style: a styles xml file, see <https://github.com/functionscope/Node-Excel-Export>
- fields: either an array or map containing field configuration:
- array: a list of names of fields to be exported, in that order
- object: a map of names of fields to be exported and the types of those fields. Supported types are 'number','string','bool'
Example:
var json2xls = require('json2xls');
var json = {
foo: 'bar',
qux: 'moo',
poo: 123,
stux: new Date()
}
//export only the field 'poo'
var xls = json2xls(json,{
fields: ['poo']
});
//export only the field 'poo' as string
var xls = json2xls(json,{
fields: {poo:'string'}
});
fs.writeFileSync('data.xlsx', xls, 'binary');

502
node_modules/json2xls/spec/arrayData.json generated vendored Executable file
View File

@@ -0,0 +1,502 @@
[
{
"name": "Ivy Dickson",
"date": "2013-05-27T11:04:15-07:00",
"number": 10
},
{
"date": "2014-02-07T22:09:58-08:00",
"name": "Walker Lynch",
"number": 2
},
{
"number": 5,
"date": "2013-06-16T05:29:13-07:00",
"name": "Maxwell U. Holden"
},
{
"name": "Courtney Short",
"date": "2014-03-14T07:32:34-07:00",
"number": 6
},
{
"name": "Amy Baird",
"date": "2014-03-02T17:43:22-08:00",
"number": 4
},
{
"name": "Kirby G. Hanson",
"date": "2014-03-31T00:42:54-07:00",
"number": 8
},
{
"name": "Cairo U. Witt",
"date": "2014-10-05T07:47:46-07:00",
"number": 5
},
{
"name": "Elliott J. Sandoval",
"date": "2013-05-29T19:01:47-07:00",
"number": 8
},
{
"name": "Quon Fry",
"date": "2014-07-16T12:37:51-07:00",
"number": 4
},
{
"name": "Lynn E. Solomon",
"date": "2014-01-12T13:46:28-08:00",
"number": 3
},
{
"name": "Mona V. Todd",
"date": "2012-11-22T01:04:20-08:00",
"number": 9
},
{
"name": "Maggy Floyd",
"date": "2013-03-01T13:08:09-08:00",
"number": 1
},
{
"name": "Dahlia Schwartz",
"date": "2014-01-01T20:46:08-08:00",
"number": 9
},
{
"name": "Joel C. Kaufman",
"date": "2014-05-31T21:59:50-07:00",
"number": 4
},
{
"name": "Nathaniel J. Orr",
"date": "2013-04-27T19:20:15-07:00",
"number": 6
},
{
"name": "Lucas F. Serrano",
"date": "2013-09-25T06:58:37-07:00",
"number": 1
},
{
"name": "Sylvester R. Foreman",
"date": "2013-09-04T16:03:51-07:00",
"number": 4
},
{
"name": "Ezekiel Byers",
"date": "2013-04-10T05:54:03-07:00",
"number": 9
},
{
"name": "Audrey U. Travis",
"date": "2014-02-03T17:59:16-08:00",
"number": 6
},
{
"name": "Inga B. Gomez",
"date": "2013-11-09T07:56:59-08:00",
"number": 2
},
{
"name": "Dane Dawson",
"date": "2014-10-07T21:49:09-07:00",
"number": 7
},
{
"name": "Xaviera Tyson",
"date": "2013-02-21T20:19:30-08:00",
"number": 7
},
{
"name": "Farrah K. Holcomb",
"date": "2012-12-08T03:55:34-08:00",
"number": 4
},
{
"name": "Carissa Vinson",
"date": "2014-10-22T15:25:18-07:00",
"number": 7
},
{
"name": "Alexandra Sharp",
"date": "2012-12-30T03:11:07-08:00",
"number": 6
},
{
"name": "Karen Clemons",
"date": "2013-12-14T12:56:28-08:00",
"number": 8
},
{
"name": "Brock L. Moody",
"date": "2014-09-11T21:03:40-07:00",
"number": 1
},
{
"name": "Savannah Haynes",
"date": "2013-09-08T08:38:35-07:00",
"number": 4
},
{
"name": "Ivan F. Duffy",
"date": "2013-03-23T00:01:47-07:00",
"number": 6
},
{
"name": "Ignatius Boyd",
"date": "2014-09-04T08:16:36-07:00",
"number": 5
},
{
"name": "Gloria M. Morgan",
"date": "2014-05-06T15:52:30-07:00",
"number": 3
},
{
"name": "Kyla G. Richards",
"date": "2013-07-04T21:07:18-07:00",
"number": 8
},
{
"name": "Joshua Bennett",
"date": "2013-03-17T19:55:44-07:00",
"number": 10
},
{
"name": "Risa R. Charles",
"date": "2013-09-01T22:08:00-07:00",
"number": 2
},
{
"name": "Shellie F. Odom",
"date": "2014-02-13T07:43:59-08:00",
"number": 4
},
{
"name": "Farrah W. Montoya",
"date": "2014-08-06T10:07:27-07:00",
"number": 5
},
{
"name": "Britanney Chandler",
"date": "2014-02-14T02:15:13-08:00",
"number": 4
},
{
"name": "Daria B. Banks",
"date": "2013-09-06T11:42:25-07:00",
"number": 3
},
{
"name": "Hope G. Mccullough",
"date": "2013-05-10T14:01:23-07:00",
"number": 3
},
{
"name": "Jescie Mcfarland",
"date": "2013-06-05T20:34:39-07:00",
"number": 9
},
{
"name": "Octavius Dalton",
"date": "2014-10-29T04:24:13-07:00",
"number": 5
},
{
"name": "Lilah Schmidt",
"date": "2014-09-19T13:15:28-07:00",
"number": 10
},
{
"name": "Tatum Butler",
"date": "2013-04-21T22:26:48-07:00",
"number": 2
},
{
"name": "Maxwell Jackson",
"date": "2014-04-01T13:45:43-07:00",
"number": 4
},
{
"name": "Malachi Camacho",
"date": "2014-09-07T05:43:21-07:00",
"number": 3
},
{
"name": "Dahlia Norman",
"date": "2013-12-04T21:43:09-08:00",
"number": 8
},
{
"name": "Martha Q. Bradford",
"date": "2012-12-29T10:54:34-08:00",
"number": 8
},
{
"name": "Adena Thompson",
"date": "2013-07-31T04:00:42-07:00",
"number": 9
},
{
"name": "Daquan Burke",
"date": "2013-03-10T18:19:30-07:00",
"number": 3
},
{
"name": "Avram Hodges",
"date": "2013-04-19T06:25:26-07:00",
"number": 2
},
{
"name": "Lila G. Strong",
"date": "2014-05-15T22:06:01-07:00",
"number": 10
},
{
"name": "Duncan M. Stout",
"date": "2012-12-02T13:13:18-08:00",
"number": 6
},
{
"name": "Vera Glover",
"date": "2013-05-29T20:39:03-07:00",
"number": 1
},
{
"name": "Norman I. Callahan",
"date": "2014-02-18T04:25:02-08:00",
"number": 5
},
{
"name": "Mia Mcdaniel",
"date": "2013-05-09T04:49:23-07:00",
"number": 3
},
{
"name": "Wing G. Lancaster",
"date": "2013-11-29T21:36:19-08:00",
"number": 4
},
{
"name": "Norman Walter",
"date": "2013-03-11T00:10:07-07:00",
"number": 9
},
{
"name": "Quinn Stephenson",
"date": "2013-09-22T19:18:08-07:00",
"number": 10
},
{
"name": "Shana Q. Hunter",
"date": "2013-06-23T00:02:12-07:00",
"number": 9
},
{
"name": "Amy Bender",
"date": "2014-10-01T11:49:28-07:00",
"number": 3
},
{
"name": "Carla Q. Graham",
"date": "2013-04-14T18:09:23-07:00",
"number": 1
},
{
"name": "Sasha P. Rosario",
"date": "2013-02-19T06:21:57-08:00",
"number": 7
},
{
"name": "Shellie S. Shepard",
"date": "2014-08-20T01:34:49-07:00",
"number": 3
},
{
"name": "Giacomo Burke",
"date": "2013-10-21T18:58:22-07:00",
"number": 2
},
{
"name": "Jack P. Horton",
"date": "2013-06-01T07:48:24-07:00",
"number": 9
},
{
"name": "Jelani H. Edwards",
"date": "2013-11-14T09:46:34-08:00",
"number": 1
},
{
"name": "Tallulah Norman",
"date": "2014-08-07T01:10:09-07:00",
"number": 8
},
{
"name": "Thor Blackburn",
"date": "2013-02-10T08:25:08-08:00",
"number": 7
},
{
"name": "Lee Richard",
"date": "2014-04-04T04:44:19-07:00",
"number": 9
},
{
"name": "Inga Mooney",
"date": "2013-06-16T19:01:29-07:00",
"number": 10
},
{
"name": "Barrett L. Nicholson",
"date": "2013-07-14T16:22:48-07:00",
"number": 7
},
{
"name": "Marsden Haley",
"date": "2014-08-24T17:07:57-07:00",
"number": 9
},
{
"name": "Eugenia Jensen",
"date": "2014-02-10T09:53:42-08:00",
"number": 3
},
{
"name": "Finn I. England",
"date": "2014-05-21T11:29:45-07:00",
"number": 10
},
{
"name": "Christine H. Mccall",
"date": "2013-07-31T22:39:23-07:00",
"number": 3
},
{
"name": "Olivia Sims",
"date": "2014-03-22T21:39:53-07:00",
"number": 10
},
{
"name": "Leah Potter",
"date": "2014-05-24T15:34:39-07:00",
"number": 8
},
{
"name": "Francesca Becker",
"date": "2014-11-14T15:50:19-08:00",
"number": 5
},
{
"name": "Bell Guy",
"date": "2014-09-24T06:11:26-07:00",
"number": 5
},
{
"name": "Brennan R. Camacho",
"date": "2013-04-26T19:37:18-07:00",
"number": 6
},
{
"name": "Branden Hogan",
"date": "2013-09-30T02:32:41-07:00",
"number": 6
},
{
"name": "Ray Greene",
"date": "2014-02-25T09:35:15-08:00",
"number": 3
},
{
"name": "Lewis Patterson",
"date": "2014-04-06T04:14:34-07:00",
"number": 6
},
{
"name": "Freya L. Barry",
"date": "2014-10-24T18:49:14-07:00",
"number": 2
},
{
"name": "Branden Oneal",
"date": "2014-02-06T17:10:09-08:00",
"number": 10
},
{
"name": "Dylan R. Hayes",
"date": "2013-11-26T10:36:10-08:00",
"number": 6
},
{
"name": "Eliana W. Blair",
"date": "2013-06-21T06:05:26-07:00",
"number": 8
},
{
"name": "Hector Goodwin",
"date": "2014-01-01T11:40:54-08:00",
"number": 1
},
{
"name": "Chloe O. Joyner",
"date": "2014-02-23T05:20:58-08:00",
"number": 8
},
{
"name": "Nasim Moore",
"date": "2014-02-17T15:54:01-08:00",
"number": 8
},
{
"name": "Zena Davenport",
"date": "2014-04-15T01:34:18-07:00",
"number": 6
},
{
"name": "Katelyn C. Mays",
"date": "2012-12-18T14:18:15-08:00",
"number": 7
},
{
"name": "Ava H. Hartman",
"date": "2014-01-29T14:51:07-08:00",
"number": 9
},
{
"name": "Rylee Mcfarland",
"date": "2013-09-21T21:30:54-07:00",
"number": 9
},
{
"name": "Hanae K. Doyle",
"date": "2014-06-19T09:57:19-07:00",
"number": 8
},
{
"name": "Quintessa H. Swanson",
"date": "2014-02-26T22:16:01-08:00",
"number": 5
},
{
"name": "Dawn I. Hobbs",
"date": "2014-11-01T20:03:31-07:00",
"number": 9
},
{
"name": "Louis Park",
"date": "2014-03-21T23:24:03-07:00",
"number": 10
},
{
"name": "Jenna Richardson",
"date": "2013-09-26T23:07:32-07:00",
"number": 10
},
{
"name": "Amy V. Aguirre",
"date": "2013-12-04T12:50:21-08:00",
"number": 9
}
]

8
node_modules/json2xls/spec/objectData.json generated vendored Normal file
View File

@@ -0,0 +1,8 @@
{
"name": "Ivy Dickson",
"date": "2013-05-27T11:04:15-07:00",
"number": 10,
"nested": {
"field":"foo"
}
}

211
node_modules/json2xls/spec/prepareSpec.js generated vendored Normal file
View File

@@ -0,0 +1,211 @@
var json2xls = require('../lib/json2xls');
var prep = json2xls.prepareJson;
var arrayData = require('./arrayData.json');
var objectData = require('./objectData.json');
var weirdData = require('./weirdData');
describe('prepare',function() {
beforeEach(function() {
this.addMatchers({
toEqualFields: function() {
return {
compare: function(actual,expected) {
var res;
var res = expected && expected.all && expected.all(function(item,i) {
return actual[i] && Object.keys(item).all(function(field) {
return actual[i][field] === item[field];
});
})
return {
pass: res
}
}
}
}
})
})
describe('handling illegal xml characters', function() {
it('should remove vertical tabs',function() {
var res = prep(weirdData);
expect(res.rows[0][1]).toEqual(' foo bar ');
});
});
describe('when the data is an empty array', function() {
it('should create an empty config', function() {
var res = prep([]);
expect(res.cols).toEqual([]);
expect(res.rows).toEqual([]);
});
});
describe('when the data is an empty object', function() {
it('should create a config with one empty row', function() {
var res = prep({});
expect(res.cols).toEqual([]);
expect(res.rows).toEqual([[]]);
});
});
describe('when the data is an array', function() {
describe('cols',function() {
it('should create a cols part',function() {
var res = prep(arrayData);
expect(res.cols).toBeDefined();
});
it('should create the correct cols',function() {
var res = prep(arrayData);
expect(res.cols).toEqualFields([{
caption: 'name',
type: 'string'
},{
caption: 'date',
type: 'string'
},{
caption: 'number',
type: 'number'
}]);
});
it('should create the correct cols when fields are given as array',function() {
var res = prep(arrayData,{
fields: ['date','name']
});
expect(res.cols).toEqualFields([{
caption: 'date',
type: 'string'
},{
caption: 'name',
type: 'string'
}]);
});
it('should create the correct cols when fields are given as object',function() {
var res = prep(arrayData,{
fields: {
number: 'string',
name: 'string'
}
});
expect(res.cols).toEqualFields([{
caption: 'number',
type: 'string'
},{
caption: 'name',
type: 'string'
}]);
});
it('should create caption and type field',function() {
var cols = prep(arrayData).cols;
expect(cols[0].caption).toBeDefined();
expect(cols[0].type).toBeDefined();
});
});
describe('rows',function() {
it('should create a rows part',function() {
var res = prep(arrayData);
expect(res.rows).toBeDefined();
});
it('should create rows with data in the correct order',function() {
var res = prep(arrayData);
expect(res.rows[0]).toEqual([ 'Ivy Dickson', '2013-05-27T11:04:15-07:00', 10 ]);
expect(res.rows[1]).toEqual([ 'Walker Lynch','2014-02-07T22:09:58-08:00', 2 ]);
expect(res.rows[2]).toEqual([ 'Maxwell U. Holden', '2013-06-16T05:29:13-07:00', 5]);
});
});
describe('style',function() {
it('should have the provided style xml file',function() {
var fn = 'test.xml';
var res = prep(arrayData,{
style: fn
});
expect(res.stylesXmlFile).toBe(fn);
});
});
});
describe('when the data is an object', function() {
describe('cols',function() {
it('should create a cols part',function() {
var res = prep(objectData);
expect(res.cols).toBeDefined();
});
it('should create caption and type field',function() {
var cols = prep(objectData).cols;
expect(cols[0].caption).toBeDefined();
expect(cols[0].type).toBeDefined();
});
});
describe('rows',function() {
it('should create a rows part',function() {
var res = prep(objectData);
expect(res.rows).toBeDefined();
});
});
describe('style',function() {
it('should have the provided style xml file',function() {
var fn = 'test.xml';
var res = prep(objectData,{
style: fn
});
expect(res.stylesXmlFile).toBe(fn);
});
});
describe('display of nested fields',function() {
it('should write nested fields as json',function() {
var res = prep(objectData);
expect(res.rows[0][3]).toEqual('{"field":"foo"}');
});
});
});
describe('working with missing fields',function() {
it('should leave missing fields blank',function() {
var res = prep([
{
"firma": "transportabel",
"internet": "http://www.transportabel.de",
"Branche": "Möbel",
"STRASSE": "Messingweg 49",
"ort": "Münster-Sprakel",
"TEL_ZENTRALE": "(0251) 29 79 46"
},
{
"firma": "Soziale Möbelbörse & mehr e.V.",
"internet": "http://www.gersch-ms.de",
"Branche": "Möbel",
"STRASSE": "Nienkamp 80",
"ort": "Münster-Wienburg",
"TEL_ZENTRALE": "(0251) 53 40 76"
},
{
"firma": "Bald Eckhart e.K.",
"Branche": "Möbel",
"STRASSE": "Weseler Str. 628",
"ort": "Münster-Mecklenbeck",
"TEL_ZENTRALE": "(0251) 53 40 76"
}
]);
expect(res.rows[2][1]).toEqual(null);
})
})
describe('prepping with config',function() {
it('should get a nested field',function() {
var res = prep(objectData,{
fields:['nested.field']
});
expect(res.rows[0]).toEqual(['foo']);
})
});
});

7
node_modules/json2xls/spec/weirdData.json generated vendored Normal file
View File

@@ -0,0 +1,7 @@
[
{
"title": "Vertical tabs",
"name": "\u000b foo bar \u000b",
"number": 2
}
]