diff --git a/conf/connection.js b/conf/connection.js new file mode 100644 index 0000000..a17028f --- /dev/null +++ b/conf/connection.js @@ -0,0 +1,9 @@ +var mysql = require('mysql'); +const connection = mysql.createConnection({ + host: 'localhost', + user: 'root', + password: 'george', + database: 'red_de_investigacion' +}); + +module.exports = connection; \ No newline at end of file diff --git a/conf/sistemas.js b/conf/sistemas.js new file mode 100644 index 0000000..e5a45d5 --- /dev/null +++ b/conf/sistemas.js @@ -0,0 +1,9 @@ +var mysql = require('mysql'); +const connection = mysql.createConnection({ + host: '132.248.180.228', + user: 'USR_REDINVESTIGACION', + database: 'BASESDSI', + password: '67NHA*Y' +}); + +module.exports = connection; \ No newline at end of file diff --git a/data_base/scrip_db.sql b/data_base/scrip_db.sql index a954977..95310ea 100644 --- a/data_base/scrip_db.sql +++ b/data_base/scrip_db.sql @@ -4,27 +4,30 @@ CREATE TABLE `usuario` ( `id_usuario` int PRIMARY KEY AUTO_INCREMENT, - `usuario` varchar(100), - `password` varchar(120) + `usuario` varchar(50), + `password` varchar(200) ); CREATE TABLE `proyecto` ( `id_proyecto` int PRIMARY KEY AUTO_INCREMENT, `nombre_proyecto` varchar(100), - `rfc_responsable` varchar(50), - `nombre_responsable` varchar(100), - `disciplina` varchar(100), - `objetivo_general` varchar(255), - `hipotesis` varchar(255), - `resumen` varchar(255), - `fecha_inicio` date, - `fecha_final` date, + `rfc_responsable` varchar(60), + `nombre_responsable` varchar(70), + `disciplina` varchar(150), + `objetivo_general` varchar(300), + `hipotesis` varchar(600), + `resumen` varchar(600), + `fecha_inicio` datetime, + `fecha_final` datetime, `estado_avance` varchar(30), `avance` int, - `duracion` varchar(20), + `duracion` varchar(50), `financiamiento` varchar(100), - `numero_registro` varchar(100), - `presupuesto` float + `numero_registro` varchar(120), + `presupuesto` float, + `id_usuario` int, + `fecha_creacion` datetime, + `fecha_modificiacion` datetime ); CREATE TABLE `campo_conocimiento` ( @@ -40,7 +43,7 @@ CREATE TABLE `proyecto_campo` ( CREATE TABLE `linea_investigacion` ( `id_linea_investigacion` int PRIMARY KEY AUTO_INCREMENT, - `nombre` varchar(50) + `nombre` varchar(100) ); CREATE TABLE `proyecto_linea` ( @@ -52,14 +55,14 @@ CREATE TABLE `proyecto_linea` ( CREATE TABLE `proyecto_objetivo` ( `id_pro_objetivo` int PRIMARY KEY AUTO_INCREMENT, `id_proyecto` int, - `objetivo_texto` varchar(150) + `objetivo_texto` varchar(250) ); CREATE TABLE `proyecto_entidad` ( `id_pro_entidad` int PRIMARY KEY AUTO_INCREMENT, `id_entidad` int, `id_proyecto` int, - `nombre_entidad` varchar(100) + `nombre_entidad` varchar(150) ); CREATE TABLE `entidades` ( @@ -69,7 +72,7 @@ CREATE TABLE `entidades` ( CREATE TABLE `producto` ( `id_producto` int PRIMARY KEY AUTO_INCREMENT, - `nombre` varchar(60) + `nombre` varchar(100) ); CREATE TABLE `proyecto_producto` ( @@ -80,14 +83,11 @@ CREATE TABLE `proyecto_producto` ( CREATE TABLE `persona` ( `id_persona` int PRIMARY KEY AUTO_INCREMENT, - `nombre` varchar(100), - `entidad` varchar(50), + `nombre` varchar(60), + `entidad` varchar(100), `id_proyecto_entidad` int, - `tipo_particicipacion` varchar(50), - `tipo` varchar(25), - `id_proyecto` int - - + `tipo_particicipacion` varchar(30), + `tipo` varchar(30) ); ALTER TABLE `proyecto_campo` ADD FOREIGN KEY (`id_proyecto`) REFERENCES `proyecto` (`id_proyecto`); @@ -108,6 +108,6 @@ ALTER TABLE `proyecto_producto` ADD FOREIGN KEY (`id_proyecto`) REFERENCES `proy ALTER TABLE `proyecto_producto` ADD FOREIGN KEY (`id_producto`) REFERENCES `producto` (`id_producto`); -ALTER TABLE `persona` ADD FOREIGN KEY (`id_proyecto`) REFERENCES `proyecto` (`id_proyecto`); - ALTER TABLE `persona` ADD FOREIGN KEY (`id_proyecto_entidad`) REFERENCES `proyecto_entidad` (`id_pro_entidad`); + +ALTER TABLE `proyecto` ADD FOREIGN KEY (`id_usuario`) REFERENCES `usuario` (`id_usuario`); diff --git a/data_base/values.sql b/data_base/values.sql index eeb3bdc..20445a9 100644 --- a/data_base/values.sql +++ b/data_base/values.sql @@ -2,13 +2,21 @@ insert into usuario values(null, "uim_user", "$2b$10$R898HP76TOXq8Kk0J6UC6OBz7Fg insert into usuario values(null, "cedetec_user", "otra_contra"); -insert into linea_investigacion values(null, "linea uno"); -insert into linea_investigacion values(null, "linea dos"); -insert into linea_investigacion values(null, "linea tres"); -insert into linea_investigacion values(null, "linea cuatro"); -insert into linea_investigacion values(null, "linea cinco"); -insert into linea_investigacion values(null, "linea seis"); -insert into linea_investigacion values(null, "linea siete") +insert into linea_investigacion values(null, "Autocultura e intercultura de las literaturas mexicanas y española"); +insert into linea_investigacion values(null, "Didáctica de la literatura"); +insert into linea_investigacion values(null, "Docencia"); +insert into linea_investigacion values(null, "Filología"); +insert into linea_investigacion values(null, "Historia del arte"); +insert into linea_investigacion values(null, "Historia/literatura"); +insert into linea_investigacion values(null, "Historiografía lingüistica"); +insert into linea_investigacion values(null, "Investigación educativa"); +insert into linea_investigacion values(null, "Lingüistica"); +insert into linea_investigacion values(null, "Lingüistica histórica"); +insert into linea_investigacion values(null, "Literatura"); +insert into linea_investigacion values(null, "Literatura caballeresca española"); +insert into linea_investigacion values(null, "Literatura mexicana"); +insert into linea_investigacion values(null, "Literatura renancetista española"); +insert into linea_investigacion values(null, "Poesía mexicana"); insert into campo_conocimiento values(null, "Ciencias Juridicas"); insert into campo_conocimiento values(null, "Ciencias Sociales"); @@ -16,13 +24,34 @@ insert into campo_conocimiento values(null, "Ciencias Diseño y Edificación"); insert into campo_conocimiento values(null, "Humanidades"); insert into campo_conocimiento values(null, "Matemáticas e Ingenieria"); -insert into producto values(null, "producto 1"); -insert into producto values(null, "producto 2"); -insert into producto values(null, "producto 3"); -insert into producto values(null, "producto 4"); -insert into producto values(null, "producto 5"); +insert into producto values(null, "Reportes e informes técnicos de investigación"); +insert into producto values(null, "Mapas y bases de datos de investigación"); +insert into producto values(null, "Participación en actos académicos nacionales"); +insert into producto values(null, "Participación en actos académicos internacionales"); +insert into producto values(null, "Equipo instrumental de investigación incorporado"); +insert into producto values(null, "Publicaciones arbitradas realizadas"); +insert into producto values(null, "Libros y artículos no arbitrarios termiandos"); +insert into producto values(null, "Patentes registradas"); +insert into producto values(null, "Derechos de autor registrados"); +insert into producto values(null, "Publicaciones electrónicas realizadas"); +insert into producto values(null, "Actos académicos organizados por la entidad"); +insert into producto values(null, "Artículos cientificos publicados por recién graduados"); +insert into producto values(null, "Tesis de licenciatura o grado académico concluido"); insert into entidades values(null, "Otra facultad de la UNAM"); insert into entidades values(null, "Otra universidad de Mexico"); insert into entidades values (null, "Universidad en el extrajero"); +insert into entidades values (null, "Asociaciín civil"); +insert into entidades values (null, "Dependencia federal"); +insert into entidades values (null, "Dependencia municipal"); +insert into entidades values (null, "Otra entidad"); + + + +insert into persona (nombre) values("angel antonio"); +insert into persona (nombre) values("maria fernanda"); +insert into persona (nombre) values("daniel george"); +insert into persona (nombre) values("samuel george"); + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..765e814 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2496 @@ +{ + "name": "red_de_invesitgacion", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@azure/ms-rest-azure-env": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@azure/ms-rest-azure-env/-/ms-rest-azure-env-1.1.2.tgz", + "integrity": "sha512-l7z0DPCi2Hp88w12JhDTtx5d0Y3+vhfE7JKJb9O7sEz71Cwp053N8piTtTnnk/tUor9oZHgEKi/p3tQQmLPjvA==" + }, + "@azure/ms-rest-js": { + "version": "1.8.14", + "resolved": "https://registry.npmjs.org/@azure/ms-rest-js/-/ms-rest-js-1.8.14.tgz", + "integrity": "sha512-IrCPN22c8RbKWA06ZXuFwwEb15cSnr0zZ6J8Fspp9ns1SSNTERf7hv+gWvTIis1FlwHy42Mfk8hVu0/r3a0AWA==", + "requires": { + "@types/tunnel": "0.0.0", + "axios": "^0.19.0", + "form-data": "^2.3.2", + "tough-cookie": "^2.4.3", + "tslib": "^1.9.2", + "tunnel": "0.0.6", + "uuid": "^3.2.1", + "xml2js": "^0.4.19" + } + }, + "@azure/ms-rest-nodeauth": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@azure/ms-rest-nodeauth/-/ms-rest-nodeauth-2.0.2.tgz", + "integrity": "sha512-KmNNICOxt3EwViAJI3iu2VH8t8BQg5J2rSAyO4IUYLF9ZwlyYsP419pdvl4NBUhluAP2cgN7dfD2V6E6NOMZlQ==", + "requires": { + "@azure/ms-rest-azure-env": "^1.1.2", + "@azure/ms-rest-js": "^1.8.7", + "adal-node": "^0.1.28" + } + }, + "@types/caseless": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz", + "integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==" + }, + "@types/node": { + "version": "8.10.59", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.59.tgz", + "integrity": "sha512-8RkBivJrDCyPpBXhVZcjh7cQxVBSmRk9QM7hOketZzp6Tg79c0N8kkpAIito9bnJ3HCVCHVYz+KHTEbfQNfeVQ==" + }, + "@types/readable-stream": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.5.tgz", + "integrity": "sha512-Mq2eLkGYamlcolW603FY2ROBvcl90jPF+3jLkjpBV6qS+2aVeJqlgRG0TVAa1oWbmPdb5yOWlOPVvQle76nUNw==", + "requires": { + "@types/node": "*", + "safe-buffer": "*" + } + }, + "@types/request": { + "version": "2.48.3", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.3.tgz", + "integrity": "sha512-3Wo2jNYwqgXcIz/rrq18AdOZUQB8cQ34CXZo+LUwPJNpvRAL86+Kc2wwI8mqpz9Cr1V+enIox5v+WZhy/p3h8w==", + "requires": { + "@types/caseless": "*", + "@types/node": "*", + "@types/tough-cookie": "*", + "form-data": "^2.5.0" + } + }, + "@types/tough-cookie": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.5.tgz", + "integrity": "sha512-SCcK7mvGi3+ZNz833RRjFIxrn4gI1PPR3NtuIS+6vMkvmsGjosqTJwRt5bAEFLRz+wtJMWv8+uOnZf2hi2QXTg==" + }, + "@types/tunnel": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.0.tgz", + "integrity": "sha512-FGDp0iBRiBdPjOgjJmn1NH0KDLN+Z8fRmo+9J7XGBhubq1DPrGrbmG4UTlGzrpbCpesMqD0sWkzi27EYkOMHyg==", + "requires": { + "@types/node": "*" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "acorn": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", + "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==" + } + } + }, + "acorn-walk": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.0.0.tgz", + "integrity": "sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg==" + }, + "adal-node": { + "version": "0.1.28", + "resolved": "https://registry.npmjs.org/adal-node/-/adal-node-0.1.28.tgz", + "integrity": "sha1-RoxLs+u9lrEnBmn0ucuk4AZepIU=", + "requires": { + "@types/node": "^8.0.47", + "async": ">=0.6.0", + "date-utils": "*", + "jws": "3.x.x", + "request": ">= 2.52.0", + "underscore": ">= 1.3.1", + "uuid": "^3.1.0", + "xmldom": ">= 0.1.x", + "xpath.js": "~1.1.0" + } + }, + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "array-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", + "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "ast-transform": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/ast-transform/-/ast-transform-0.0.0.tgz", + "integrity": "sha1-dJRAWIh9goPhidlUYAlHvJj+AGI=", + "requires": { + "escodegen": "~1.2.0", + "esprima": "~1.0.4", + "through": "~2.3.4" + }, + "dependencies": { + "escodegen": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.2.0.tgz", + "integrity": "sha1-Cd55Z3kcyVi3+Jot220jRRrzJ+E=", + "requires": { + "esprima": "~1.0.4", + "estraverse": "~1.5.0", + "esutils": "~1.0.0", + "source-map": "~0.1.30" + } + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" + }, + "estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=" + }, + "esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=" + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "ast-types": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.7.8.tgz", + "integrity": "sha1-kC0uDWDQcb3NRtwRXhgJ7RHBOKk=" + }, + "async": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.1.0.tgz", + "integrity": "sha512-4vx/aaY6j/j3Lw3fbCHNWP0pPaTCew3F6F3hYyl/tHs/ndmV1q7NW9T5yuJ2XAGwdQrP+6Wu20x06U4APo/iQQ==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz", + "integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==" + }, + "axios": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.1.tgz", + "integrity": "sha512-Yl+7nfreYKaLRvAvjNPkvfjnQHJM1yLBY3zhqAwcJSwR/6ETkanUgylgtIvkvz0xJ+p/vZuNw8X7Hnb7Whsbpw==", + "requires": { + "follow-redirects": "1.5.10" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "bcrypt": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-3.0.7.tgz", + "integrity": "sha512-K5UglF9VQvBMHl/1elNyyFvAfOY9Bj+rpKrCSR9sFwcW8FywAYJSRwTURNej5TaAK2TEJkcJ6r6lh1YPmspx5Q==", + "requires": { + "nan": "2.14.0", + "node-pre-gyp": "0.13.0" + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", + "requires": { + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" + } + }, + "bl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz", + "integrity": "sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==", + "requires": { + "readable-stream": "^3.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "brfs": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz", + "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==", + "requires": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^2.2.0", + "through2": "^2.0.0" + } + }, + "brotli": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.2.tgz", + "integrity": "sha1-UlqcrU/LqWR119OI9q7LE+7VL0Y=", + "requires": { + "base64-js": "^1.1.2" + } + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + } + } + }, + "browserify-optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-optional/-/browserify-optional-1.0.1.tgz", + "integrity": "sha1-HhNyLP3g2F8SFnbCpyztUzoBiGk=", + "requires": { + "ast-transform": "0.0.0", + "ast-types": "^0.7.0", + "browser-resolve": "^1.8.1" + } + }, + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=" + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", + "requires": { + "traverse": ">=0.3.0 <0.4" + } + }, + "chownr": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "crypto-js": { + "version": "3.1.9-1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.9-1.tgz", + "integrity": "sha1-/aGedh/Ad+Af+/3G6f38WeiAbNg=" + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-utils": { + "version": "1.2.21", + "resolved": "https://registry.npmjs.org/date-utils/-/date-utils-1.2.21.tgz", + "integrity": "sha1-YfsWzcEnSzyayq/+n8ad+HIKK2Q=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decompress-zip": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/decompress-zip/-/decompress-zip-0.3.2.tgz", + "integrity": "sha512-Ab1QY4LrWMrUuo53lLnmGOby7v8ryqxJ+bKibKSiPisx+25mhut1dScVBXAYx14i/PqSrFZvR2FRRazhLbvL+g==", + "requires": { + "binary": "^0.3.0", + "graceful-fs": "^4.1.3", + "mkpath": "^0.1.0", + "nopt": "^3.0.1", + "q": "^1.1.2", + "readable-stream": "^1.1.8", + "touch": "0.0.3" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "requires": { + "abbrev": "1" + } + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + }, + "dfa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", + "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==" + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "requires": { + "readable-stream": "^2.0.2" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "es-abstract": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz", + "integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "dependencies": { + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + }, + "dependencies": { + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + } + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "estree-is-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-is-function/-/estree-is-function-1.0.0.tgz", + "integrity": "sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", + "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "falafel": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.1.0.tgz", + "integrity": "sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw=", + "requires": { + "acorn": "^5.0.0", + "foreach": "^2.0.5", + "isarray": "0.0.1", + "object-keys": "^1.0.6" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + } + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "fontkit": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-1.8.0.tgz", + "integrity": "sha512-EFDRCca7khfQWYu1iFhsqeABpi87f03MBdkT93ZE6YhqCdMzb5Eojb6c4dlJikGv5liuhByyzA7ikpIPTSBWbQ==", + "requires": { + "babel-runtime": "^6.11.6", + "brfs": "^1.4.0", + "brotli": "^1.2.0", + "browserify-optional": "^1.0.0", + "clone": "^1.0.1", + "deep-equal": "^1.0.0", + "dfa": "^1.0.0", + "restructure": "^0.5.3", + "tiny-inflate": "^1.0.2", + "unicode-properties": "^1.0.0", + "unicode-trie": "^0.3.0" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" + }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==" + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jsbi": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-3.1.1.tgz", + "integrity": "sha512-+HQESPaV0mRiH614z4JPVPAftcRC2p53x92lySPzUzFwJbJTMpzHz8OYUkcXPN3fOcHUe0NdVcHnCtX/1+eCrA==" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "linebreak": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-1.0.2.tgz", + "integrity": "sha512-bJwSRsJeAmaZYnkcwl5sCQNfSDAhBuXxb6L27tb+qkBRtUQSSTUa5bcgCPD6hFEkRNlpWHfK7nFMmcANU7ZP1w==", + "requires": { + "base64-js": "0.0.8", + "brfs": "^2.0.2", + "unicode-trie": "^1.0.0" + }, + "dependencies": { + "base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=" + }, + "brfs": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-2.0.2.tgz", + "integrity": "sha512-IrFjVtwu4eTJZyu8w/V2gxU7iLTtcHih67sgEdzrhjLBMHp2uYefUBfdM4k2UvcuWMgV7PQDZHSLeNWnLFKWVQ==", + "requires": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^3.0.2", + "through2": "^2.0.0" + } + }, + "static-module": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-3.0.3.tgz", + "integrity": "sha512-RDaMYaI5o/ym0GkCqL/PlD1Pn216omp8fY81okxZ6f6JQxWW5tptOw9reXoZX85yt/scYvbWIt6uoszeyf+/MQ==", + "requires": { + "acorn-node": "^1.3.0", + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "~1.9.0", + "has": "^1.0.1", + "magic-string": "^0.22.4", + "merge-source-map": "1.0.4", + "object-inspect": "~1.4.0", + "readable-stream": "~2.3.3", + "scope-analyzer": "^2.0.1", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.2", + "through2": "~2.0.3" + } + }, + "unicode-trie": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-1.0.0.tgz", + "integrity": "sha512-v5raLKsobbFbWLMoX9+bChts/VhPPj3XpkNr/HbqkirXR1DPk8eo9IYKyvk0MQZFkaoRsFj2Rmaqgi2rfAZYtA==", + "requires": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + } + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "requires": { + "vlq": "^0.2.2" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", + "requires": { + "source-map": "^0.5.6" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.42.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", + "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==" + }, + "mime-types": { + "version": "2.1.25", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz", + "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==", + "requires": { + "mime-db": "1.42.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "mkpath": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-0.1.0.tgz", + "integrity": "sha1-dVSm+Nhxg0zJe1RisSLEwSTW3pE=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mssql": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/mssql/-/mssql-6.0.1.tgz", + "integrity": "sha512-7oPhbQjotFJBgMPlzLmPwWlnrryxrDltjCNCD9BK7Df7TA9wc6Mb/0Bcx04NJyHCMAhw8C/iWjbJoeDyUfRNUA==", + "requires": { + "debug": "^4", + "tarn": "^1.1.5", + "tedious": "^6.6.2" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + }, + "native-duplexpair": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/native-duplexpair/-/native-duplexpair-1.0.0.tgz", + "integrity": "sha1-eJkHjmS/PIo9cyYBs9QP8F21j6A=" + }, + "needle": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", + "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "ngrok": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/ngrok/-/ngrok-3.2.5.tgz", + "integrity": "sha512-FWWQJSg8A1L6prZmT53onZMiFiaY+CfDgS9YStKjbE3qf2WDmRdi6kNBFvQKD2ARSv/te+rqeizAOGSUH5X56w==", + "requires": { + "@types/node": "^8.10.50", + "@types/request": "^2.48.2", + "decompress-zip": "^0.3.2", + "request": "^2.88.0", + "request-promise-native": "^1.0.7", + "uuid": "^3.3.2" + } + }, + "node-pre-gyp": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.13.0.tgz", + "integrity": "sha512-Md1D3xnEne8b/HGVQkZZwV27WUi1ZRuZBij24TNaZwUPU3ZAFtvT6xxJGaUVillfmMKnn5oD1HoGsp2Ftik7SQ==", + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz", + "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==" + }, + "npm-packlist": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.6.tgz", + "integrity": "sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg==", + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-inspect": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", + "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==" + }, + "object-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz", + "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "pdfkit": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/pdfkit/-/pdfkit-0.11.0.tgz", + "integrity": "sha512-1s9gaumXkYxcVF1iRtSmLiISF2r4nHtsTgpwXiK8Swe+xwk/1pm8FJjYqN7L3x13NsWnGyUFntWcO8vfqq+wwA==", + "requires": { + "crypto-js": "^3.1.9-1", + "fontkit": "^1.8.0", + "linebreak": "^1.0.2", + "png-js": "^1.0.0" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "png-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/png-js/-/png-js-1.0.0.tgz", + "integrity": "sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==" + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + } + }, + "psl": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.5.0.tgz", + "integrity": "sha512-4vqUjKi2huMu1OJiLhi3jN6jeeKvMZdI1tYgi/njW5zV52jNLgSAZSdN16m9bJFe61/cT8ulmw4qFitV9QRsEA==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "quote-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", + "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=", + "requires": { + "buffer-equal": "0.0.1", + "minimist": "^1.1.3", + "through2": "^2.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + } + } + }, + "request-promise-core": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", + "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", + "requires": { + "lodash": "^4.17.15" + } + }, + "request-promise-native": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz", + "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==", + "requires": { + "request-promise-core": "1.1.3", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, + "resolve": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.1.tgz", + "integrity": "sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "restructure": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/restructure/-/restructure-0.5.4.tgz", + "integrity": "sha1-9U591WNZD7NP1r9Vh2EJrsyyjeg=", + "requires": { + "browserify-optional": "^1.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "scope-analyzer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/scope-analyzer/-/scope-analyzer-2.0.5.tgz", + "integrity": "sha512-+U5H0417mnTEstCD5VwOYO7V4vYuSqwqjFap40ythe67bhMFL5C3UgPwyBv7KDJsqUBIKafOD57xMlh1rN7eaw==", + "requires": { + "array-from": "^2.1.1", + "es6-map": "^0.1.5", + "es6-set": "^0.1.5", + "es6-symbol": "^3.1.1", + "estree-is-function": "^1.0.0", + "get-assigned-identifiers": "^1.1.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "static-eval": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.3.tgz", + "integrity": "sha512-zsxDGucfAh8T339sSKgpFbvg15Fms2IVaJGC+jqp0bVsxhcpM+iMeAI8weNo8dmf4OblgifTBUoyk1vGVtYw2w==", + "requires": { + "escodegen": "^1.11.1" + }, + "dependencies": { + "escodegen": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", + "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + } + } + }, + "static-module": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz", + "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==", + "requires": { + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "~1.9.0", + "falafel": "^2.1.0", + "has": "^1.0.1", + "magic-string": "^0.22.4", + "merge-source-map": "1.0.4", + "object-inspect": "~1.4.0", + "quote-stream": "~1.0.2", + "readable-stream": "~2.3.3", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.0", + "through2": "~2.0.3" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string.prototype.trimleft": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", + "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", + "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "tarn": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/tarn/-/tarn-1.1.5.tgz", + "integrity": "sha512-PMtJ3HCLAZeedWjJPgGnCvcphbCOMbtZpjKgLq3qM5Qq9aQud+XHrL0WlrlgnTyS8U+jrjGbEXprFcQrxPy52g==" + }, + "tedious": { + "version": "6.6.5", + "resolved": "https://registry.npmjs.org/tedious/-/tedious-6.6.5.tgz", + "integrity": "sha512-kS3xw5KT46QIokXeGJ47d/xc93bPa+bB5rKHpGkCc1iO0JCOlGTm+93RHBgs3DD7FQdIn9HyvzurR2plb7z4NA==", + "requires": { + "@azure/ms-rest-nodeauth": "2.0.2", + "@types/node": "^12.12.17", + "@types/readable-stream": "^2.3.5", + "bl": "^3.0.0", + "depd": "^2.0.0", + "iconv-lite": "^0.5.0", + "jsbi": "^3.1.1", + "native-duplexpair": "^1.0.0", + "punycode": "^2.1.0", + "readable-stream": "^3.4.0", + "sprintf-js": "^1.1.2" + }, + "dependencies": { + "@types/node": { + "version": "12.12.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.24.tgz", + "integrity": "sha512-1Ciqv9pqwVtW6FsIUKSZNB82E5Cu1I2bBTj1xuIHXLe/1zYLl3956Nbhg2MzSYHVfl9/rmanjbQIb7LibfCnug==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "iconv-lite": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.0.tgz", + "integrity": "sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "touch": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/touch/-/touch-0.0.3.tgz", + "integrity": "sha1-Ua7z1ElXHU8oel2Hyci0kYGg2x0=", + "requires": { + "nopt": "~1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "requires": { + "abbrev": "1" + } + } + } + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } + } + }, + "traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=" + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "underscore": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.2.tgz", + "integrity": "sha512-D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ==" + }, + "unicode-properties": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.3.1.tgz", + "integrity": "sha512-nIV3Tf3LcUEZttY/2g4ZJtGXhWwSkuLL+rCu0DIAMbjyVPj+8j5gNVz4T/sVbnQybIsd5SFGkPKg/756OY6jlA==", + "requires": { + "base64-js": "^1.3.0", + "unicode-trie": "^2.0.0" + }, + "dependencies": { + "unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "requires": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + } + } + }, + "unicode-trie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", + "integrity": "sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=", + "requires": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==" + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + }, + "xmldom": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.2.1.tgz", + "integrity": "sha512-kXXiYvmblIgEemGeB75y97FyaZavx6SQhGppLw5TKWAD2Wd0KAly0g23eVLh17YcpxZpnFym1Qk/eaRjy1APPg==" + }, + "xpath.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xpath.js/-/xpath.js-1.1.0.tgz", + "integrity": "sha512-jg+qkfS4K8E7965sqaUl8mRngXiKb3WZGfONgE18pr03FUQiuSV6G+Ej4tS55B+rIQSFEIw3phdVAQ4pPqNWfQ==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } +} diff --git a/package.json b/package.json index 08fcf22..54176f1 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,9 @@ "dependencies": { "bcrypt": "^3.0.7", "cors": "^2.8.5", - "express": "^4.17.1" + "express": "^4.17.1", + "mssql": "^6.0.1", + "ngrok": "^3.2.5", + "pdfkit": "^0.11.0" } } diff --git a/public/comprobante-1.pdf b/public/comprobante-1.pdf new file mode 100644 index 0000000..92a830b Binary files /dev/null and b/public/comprobante-1.pdf differ diff --git a/public/comprobante-2.pdf b/public/comprobante-2.pdf new file mode 100755 index 0000000..f42171f Binary files /dev/null and b/public/comprobante-2.pdf differ diff --git a/public/comprobante-3.pdf b/public/comprobante-3.pdf new file mode 100755 index 0000000..6a29974 Binary files /dev/null and b/public/comprobante-3.pdf differ diff --git a/public/comprobante-4.pdf b/public/comprobante-4.pdf new file mode 100755 index 0000000..426a235 Binary files /dev/null and b/public/comprobante-4.pdf differ diff --git a/public/comprobante-5.pdf b/public/comprobante-5.pdf new file mode 100755 index 0000000..9463642 Binary files /dev/null and b/public/comprobante-5.pdf differ diff --git a/public/comprobante-6.pdf b/public/comprobante-6.pdf new file mode 100644 index 0000000..9bbab72 Binary files /dev/null and b/public/comprobante-6.pdf differ diff --git a/public/comprobante-7.pdf b/public/comprobante-7.pdf new file mode 100644 index 0000000..5e29c5d Binary files /dev/null and b/public/comprobante-7.pdf differ diff --git a/public/comprobante-8.pdf b/public/comprobante-8.pdf new file mode 100644 index 0000000..cf207f7 Binary files /dev/null and b/public/comprobante-8.pdf differ diff --git a/public/comprobante-9.pdf b/public/comprobante-9.pdf new file mode 100644 index 0000000..e3f51d9 Binary files /dev/null and b/public/comprobante-9.pdf differ diff --git a/public/comprobante-undefined.pdf b/public/comprobante-undefined.pdf new file mode 100644 index 0000000..0399942 Binary files /dev/null and b/public/comprobante-undefined.pdf differ diff --git a/routes/Imagenes/Fesa.jpg b/routes/Imagenes/Fesa.jpg new file mode 100755 index 0000000..323011e Binary files /dev/null and b/routes/Imagenes/Fesa.jpg differ diff --git a/routes/Imagenes/logo_unam.png b/routes/Imagenes/logo_unam.png new file mode 100755 index 0000000..e80bc64 Binary files /dev/null and b/routes/Imagenes/logo_unam.png differ diff --git a/routes/busca_profesor.js b/routes/busca_profesor.js new file mode 100644 index 0000000..d13a56c --- /dev/null +++ b/routes/busca_profesor.js @@ -0,0 +1,33 @@ +const connection = require('../conf/connection'); +const express = require('express'); +var app = express(); +const sql = require('mssql') + +async function traer() { + try { + let pass = "67NHA*Y"; + // make sure that any items are correctly URL encoded in the connection string + await sql.connect(`mssql://USR_REDINVESTIGACION:${pass}@132.248.180.228/DB_ARES`) + const result = await sql.query `EXEC DB_ARES.dbo.SPD_CONSULTA_DATOS_PROFESORES_RED_INVESTIGACION;` + + //console.log(result); + let aux = []; + await result.recordsets[0].forEach(element => { + let r = aux.find(item => item.Rfc == element.Rfc); + //console.log(element + ' ' + r); + if (r == undefined) + aux.push(element); + + }); + return aux; + } catch (err) { + console.log(err); + } +} + +app.get('/busca_profesor', async(req, res) => { + let pon = await traer(); + res.status(200).json({ data: pon }); + +}) +module.exports = app; \ No newline at end of file diff --git a/routes/datos_modificar.js b/routes/datos_modificar.js new file mode 100644 index 0000000..f87eac7 --- /dev/null +++ b/routes/datos_modificar.js @@ -0,0 +1,186 @@ +const connection = require('../conf/connection'); +const express = require('express'); +var app = express(); + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} +app.get('/datos_modificar', async(req, res) => { + const id = req.query.id_proyecto; + //console.log(id); + let respuesta = {}; + try { + let cad = `select * from proyecto where id_proyecto=${id}`; + let r = await query(cad); + respuesta.proyecto = r; + + } catch { + return; + } + try { + let campo = ''; + let cad = `select nombre,c.id_campo from campo_conocimiento as c inner join proyecto_campo as p where p.id_proyecto=${id} and p.id_campo=c.id_campo;`; + let r = await query(cad); + let reg = []; + r.forEach(element => { + reg.push(element.id_campo); + }) + respuesta.campo_proyecto = reg; + + } catch { + return; + } + + + try { + let cad = `select l.id_linea_investigacion from linea_investigacion as l inner join proyecto_linea as p where p.id_proyecto=${id} and p.id_linea_investigacion=l.id_linea_investigacion;`; + let r = await query(cad); + aux = []; + r.forEach(element => { + aux.push(element.id_linea_investigacion); + }) + console.log(aux); + + + respuesta.linea_investigacion = aux; + + } catch (error) { + res.status(400).json({ msj: "MALO", res: error }) + } + + try { + let cad = `select objetivo_texto from proyecto_objetivo where id_proyecto=${id} ;`; + let r = await query(cad); + + respuesta.objetivo = r; + + } catch (error) { + res.status(400).json({ msj: "MALO", res: error }) + } + + + try { + let cad = `select p.id_producto from producto as p inner join proyecto_producto as pp where pp.id_proyecto=${id} and p.id_producto=pp.id_producto;`; + let r = await query(cad); + let aux = []; + r.forEach(element => { + console.log(element); + aux.push(element.id_producto); + }) + respuesta.producto = aux; + + } catch (error) { + res.status(400).json({ msj: "MALO", res: error }) + } + + //this.entidades_seleccionadas.push({id_entidad: null, nombre: 'Seleccione la Entidad', nombre_de_entidad:''}); + try { + let cad = `select p.id_entidad, e.tipo, p.nombre_entidad from entidades as e inner join proyecto_entidad as p where p.id_proyecto=${ id } and p.id_entidad=e.id_entidad;`; + let r = await query(cad); + console.log(r); + let aux = []; + r.forEach(element => { + let con = {}; + con.id_entidad = element.id_entidad; + con.nombre = element.tipo; + con.nombre_de_entidad = element.nombre_entidad; + aux.push(con); + }) + //console.log("entidad ", r); + respuesta.entidad = aux; + + } catch (error) { + res.status(400).json({ msj: "MALO", res: error }) + } + // alumnos_internos:[{nombre: '', participacion:'Tipo de participación'}], + + try { + let cad = `select nombre, tipo_particicipacion from persona as p inner join proyecto_entidad as p_e where p_e.nombre_entidad = "FES-Acatlan"and p_e.id_pro_entidad = p.id_proyecto_entidad and p.tipo = "alumno"and p_e.id_proyecto = ${ id };`; + let r = await query(cad); + let aux = []; + r.forEach(element => { + let con = {}; + con.nombre = element.nombre; + con.participacion = element.tipo_particicipacion; + aux.push(con); + }) + respuesta.alumnos_internos = aux; + + } catch (error) { + res.status(400).json({ msj: "MALO", res: error }) + } + + //alumnos_externos:[{nombre: '', participacion: 'Tipo de participación', entidad:'Seleccione Entidad',id_entidad:null}], + + try { + let cad = `select nombre, tipo_particicipacion, nombre_entidad, id_pro_entidad from persona as p inner join proyecto_entidad as p_e inner join entidades as e where e.id_entidad = p_e.id_entidad and p_e.nombre_entidad != "FES-Acatlan"and p_e.id_pro_entidad = p.id_proyecto_entidad and p.tipo = "alumno" and p_e.id_proyecto = ${ id };`; + let r = await query(cad); + let aux = []; + r.forEach(element => { + let con = {}; + con.nombre = element.nombre; + con.participacion = element.tipo_particicipacion; + con.entidad = element.nombre_entidad; + con.id_entidad = element.id_pro_entidad; + aux.push(con); + }) + respuesta.alumnos_externos = aux; + + } catch (error) { + res.status(400).json({ msj: "MALO", res: error }) + } + + + + // profesores_internos:[{nombre: '', participacion: 'Tipo de participación', n:1, use: false }], + try { + let cad = `select nombre, tipo_particicipacion from persona as p inner join proyecto_entidad as p_e where p_e.nombre_entidad = "FES-Acatlan"and p_e.id_pro_entidad = p.id_proyecto_entidad and p.tipo = "profesor"and p_e.id_proyecto = ${ id };`; + let r = await query(cad); + let aux = [] + console.log(r); + for (let i = 0; i < r.length; i++) { + let con = {}; + con.nombre = r[i].nombre; + con.participacion = r[i].tipo_particicipacion; + con.n = i + 1; + con.use = true; + aux.push(con); + + } + respuesta.profesores_internos = aux; + + } catch (error) { + res.status(400).json({ msj: "MALO", res: error }) + } + + //profesores_externos:[{nombre: '', participacion: 'Tipo de participación', entidad:'Seleccione Entidad',id_entidad:null}], + + try { + let cad = `select nombre, tipo_particicipacion, nombre_entidad, id_pro_entidad from persona as p inner join proyecto_entidad as p_e inner join entidades as e where e.id_entidad = p_e.id_entidad and p_e.nombre_entidad != "FES-Acatlan"and p_e.id_pro_entidad = p.id_proyecto_entidad and p.tipo = "profesor"and p_e.id_proyecto = ${ id };`; + let r = await query(cad); + let aux = []; + r.forEach(element => { + let con = {}; + con.nombre = element.nombre; + con.participacion = element.tipo_particicipacion; + con.entidad = element.nombre_entidad; + con.id_entidad = element.id_pro_entidad; + aux.push(con); + }) + respuesta.profesores_externos = aux; + + } catch (error) { + res.status(400).json({ msj: "MALO", res: error }) + } + + + + + res.status(200).json({ msj: "exito", data: respuesta }) +}); +module.exports = app; \ No newline at end of file diff --git a/routes/datos_profe.js b/routes/datos_profe.js new file mode 100644 index 0000000..94ad4f8 --- /dev/null +++ b/routes/datos_profe.js @@ -0,0 +1,26 @@ +const connection = require('../conf/connection'); +const express = require('express'); +var app = express(); +const sql = require('mssql') + + +async function traer(Rfc) { + try { + let pass = "67NHA*Y"; + // make sure that any items are correctly URL encoded in the connection string + await sql.connect(`mssql://USR_REDINVESTIGACION:${pass}@132.248.180.228/DB_ARES`) + const result = await sql.query `EXEC DB_ARES.dbo.SPD_CONSULTA_DATOS_X_PROFESOR_RED_INVESTIGACION "${Rfc}";` + console.log("sss"); + console.log(result.recordsets); + return result.recordsets[0]; + } catch (err) { + console.log(err); + } +} + +app.get('/datos_profe', async(req, res) => { + let pon = await traer(req.query.Rfc); + res.status(200).json({ data: pon }); + +}) +module.exports = app; \ No newline at end of file diff --git a/routes/datos_proyecto_1.js b/routes/datos_proyecto_1.js index 64b598d..3e78154 100644 --- a/routes/datos_proyecto_1.js +++ b/routes/datos_proyecto_1.js @@ -10,8 +10,23 @@ function query(consulta) { }); }) } + +function twoDigits(d) { + if (0 <= d && d < 10) return "0" + d.toString(); + if (-10 < d && d < 0) return "-0" + (-1 * d).toString(); + return d.toString(); +} + +function dataJsToMysql(dat) { + console.log(dat); + console.log(dat.getUTCFullYear()); + let ne = dat.getUTCFullYear() + "-" + twoDigits(1 + dat.getUTCMonth()) + "-" + twoDigits(dat.getUTCDate()) + " " + twoDigits(dat.getUTCHours()) + ":" + twoDigits(dat.getUTCMinutes()) + ":" + twoDigits(dat.getUTCSeconds()); + console.log(ne); + return ne; +} app.post('/datos_proyecto_1', async(req, res) => { + console.log(req.body); if (req.body.nombre_proyecto == undefined || req.body.rfc == undefined || req.body.nombre_responsable == undefined || req.body.disciplina == undefined || req.body.objetivo_general == undefined || req.body.campo_conocimiento == undefined || req.body.linea_investigacion == undefined || req.body.objetivo_particular == undefined) { @@ -28,6 +43,7 @@ app.post('/datos_proyecto_1', async(req, res) => { return; }) } catch (error) { + console.log(error); res.status(400).json({ error: true, msj: "Error al verificar el nombre del proyecto" }); return; } @@ -37,18 +53,23 @@ app.post('/datos_proyecto_1', async(req, res) => { unico = v.length }) if (unico >= 1) { + console.log("ya existe el nombre"); res.status(400).json({ error: true, msj: "El nombre del proyecto ya existe en la base de datos" }); return; } let respuesta; + let creacion = new Date(); + creacion = dataJsToMysql(creacion); + console.log(creacion); try { // insert into proyecto (id_proyecto,nombre_proyecto, rfc_responsable, nombre_responsable, disciplina, objetivo_general) values(null, "prueba", "prueba", "prueba","prueba", "prueba"); - let cad = `insert into proyecto (id_proyecto,nombre_proyecto, rfc_responsable, nombre_responsable, disciplina, objetivo_general) values(null, "${req.body.nombre_proyecto}", "${req.body.rfc}", "${req.body.nombre_responsable}", - "${req.body.disciplina}", "${req.body.objetivo_general}" );`; + let cad = `insert into proyecto (id_proyecto,nombre_proyecto, rfc_responsable, nombre_responsable, disciplina, objetivo_general,fecha_creacion, fecha_modificiacion, id_usuario) values(null, "${req.body.nombre_proyecto}", "${req.body.rfc}", "${req.body.nombre_responsable}", + "${req.body.disciplina}", "${req.body.objetivo_general}", "${creacion}" ,"${creacion}", ${req.body.id_usuario});`; respuesta = query(cad); - } catch (eror) { + } catch (error) { + console.log(error); res.status(400).json({ error: true, msj: "Error al insertar en la base de datos" }); return; } @@ -57,6 +78,7 @@ app.post('/datos_proyecto_1', async(req, res) => { let cad = `select id_proyecto from proyecto where nombre_proyecto="${req.body.nombre_proyecto}";`; respuesta_id_proyecto = query(cad); } catch (error) { + console.log(error); res.status(400).json({ error: true, msj: "Error al obtener el id del proyecto" }); return; } @@ -71,6 +93,7 @@ app.post('/datos_proyecto_1', async(req, res) => { try { respuesta = query(cad); } catch (error) { + console.log(error); res.status(400).json({ error: true, msj: "Error al insertar en la base de datos - campos" }); return; } @@ -81,6 +104,7 @@ app.post('/datos_proyecto_1', async(req, res) => { try { respuesta = query(cad); } catch (error) { + console.log(error); res.status(400).json({ error: true, msj: "Error al insertar en la base de datos - linea" }); return; } @@ -92,6 +116,7 @@ app.post('/datos_proyecto_1', async(req, res) => { try { respuesta = query(cad); } catch (error) { + console.log(error); res.status(400).json({ error: true, msj: "Error al insertar en la base de datos - particular" }); return; } diff --git a/routes/datos_proyecto_2.js b/routes/datos_proyecto_2.js index 007cf91..9a69faf 100644 --- a/routes/datos_proyecto_2.js +++ b/routes/datos_proyecto_2.js @@ -10,17 +10,50 @@ function query(consulta) { }); }) } + +function twoDigits(d) { + if (0 <= d && d < 10) return "0" + d.toString(); + if (-10 < d && d < 0) return "-0" + (-1 * d).toString(); + return d.toString(); +} + +function dataJsToMysql(dat) { + console.log(dat); + console.log(dat.getUTCFullYear()); + let ne = dat.getUTCFullYear() + "-" + twoDigits(1 + dat.getUTCMonth()) + "-" + twoDigits(dat.getUTCDate()) + " " + twoDigits(dat.getUTCHours()) + ":" + twoDigits(dat.getUTCMinutes()) + ":" + twoDigits(dat.getUTCSeconds()); + console.log(ne); + return ne; +} app.post('/datos_proyecto_2', async(req, res) => { if (req.body.hipotesis == undefined || req.body.resumen == undefined || req.body.fecha_inicio == undefined || req.body.fecha_final == undefined || req.body.estado == undefined || req.body.duracion == undefined || req.body.id_proyecto == undefined || req.body.avance == undefined) { + console.log("No estan los datos que requiere la appi"); res.status(400).json({ error: true, msj: "No estan los datos que requiere la appi" }); return; } try { + + console.log(req.body.fecha_inicio); + console.log(typeof(req.body.fecha_inicio)); + let da = new Date(req.body.fecha_inicio); + console.log(da); + console.log(typeof(da)); + + + + let fecha_inicio = new Date(req.body.fecha_inicio); + let fecha_final = new Date(req.body.fecha_final); + let fecha_i = await dataJsToMysql(fecha_inicio); + let fecha_f = await dataJsToMysql(fecha_final); + + console.log(typeof(fecha_i)); + console.log(fecha_i); + console.log(fecha_f); + let cad = `update proyecto set hipotesis="${req.body.hipotesis}", resumen="${req.body.resumen}", duracion="${req.body.duracion}", estado_avance="${req.body.estado}", avance=${req.body.avance}, - fecha_inicio="${req.body.fecha_inicio}", fecha_final = "${req.body.fecha_final}" + fecha_inicio="${fecha_i}", fecha_final = "${fecha_f}" where id_proyecto=${req.body.id_proyecto};`; console.log(req.body.id_proyecto); let respuesta = query(cad); @@ -30,7 +63,7 @@ app.post('/datos_proyecto_2', async(req, res) => { return; }).then(function(resp) { //console.log(resp); - res.status(200).json({ error: true, msj: "Exito al insertar" }); + res.status(200).json({ error: false, msj: "Exito al insertar" }); return; }) } catch (error) { diff --git a/routes/datos_proyecto_3.js b/routes/datos_proyecto_3.js index aadf017..ca1403f 100644 --- a/routes/datos_proyecto_3.js +++ b/routes/datos_proyecto_3.js @@ -13,6 +13,7 @@ function query(consulta) { app.post('/datos_proyecto_3', async(req, res) => { if (req.body.financiamiento == undefined || req.body.presupuesto == undefined || req.body.entidades == undefined || req.body.producto == undefined || req.body.id_proyecto == undefined || req.body.no_registro == undefined) { + console.log("No estan los datos que requiere la appi"); res.status(400).json({ error: true, msj: "No estan los datos que requiere la appi" }); return; diff --git a/routes/datos_proyecto_4.js b/routes/datos_proyecto_4.js index 3351e92..1f88e2f 100644 --- a/routes/datos_proyecto_4.js +++ b/routes/datos_proyecto_4.js @@ -12,14 +12,62 @@ function query(consulta) { } app.post('/datos_proyecto_4', async(req, res) => { - if (req.body.profesor_interno == undefined) { - res.status(400).json({ error: true, msj: "No estan los datos que requiere la appi" }); + console.log(req.body); + if (req.body.profesor_interno == undefined || req.body.profesor_externo == undefined || req.body.alumno_interno == undefined || req.body.alumno_externo == undefined) { + console.log("faltan datos"); + res.status(400).json({ error: true, msj: "Faltan datos" }); + console.log(req.body); return; } + + try { - req.body.profesor_interno.forEach(async element => { - let cad = `insert into persona values (null, "${element[0]}", "interno", null,"${element[1]}", "profesor", ${req.body.id_proyecto});`; + + let cad = `insert into proyecto_entidad values (null, null, ${req.body.id_proyecto}, "FES-Acatlan");`; + let respuesta = query(cad); + await respuesta.catch(function(reason) { + console.log(reason); + res.status(400).json({ error: true, msj: "No se pudo insertar en la base, insertar interno entidad" }); + return; + }) + + } catch (error) { + console.log(error); + res.status(400).json({ error: true, msj: "No se pudo insertar en la base, insertar interno entidad" }); + return; + } + + let id_interno; + + try { + + let cad = `select id_pro_entidad from proyecto_entidad where id_proyecto=${req.body.id_proyecto} and nombre_entidad="FES-Acatlan";`; + let respuesta = query(cad); + await respuesta.then(res => { + id_interno = res[0].id_pro_entidad; + + }) + + await respuesta.catch(function(reason) { + console.log(reason); + res.status(400).json({ error: true, msj: "No se pudo insertar en la base, select id poryecto entidad" }); + return; + }) + + } catch (error) { + console.log(error); + res.status(400).json({ error: true, msj: "No se pudo insertar en la base, select id poryecto entidad" }); + return; + } + + + + + + try { + await req.body.profesor_interno.forEach(async element => { + let cad = `insert into persona values (null, "${element[0]}", "interno",${id_interno}, "${element[1]}", "profesor");`; let respuesta = query(cad); await respuesta.catch(function(reason) { console.log(reason); @@ -33,8 +81,8 @@ app.post('/datos_proyecto_4', async(req, res) => { return; } try { - req.body.profesor_externo.forEach(async element => { - let cad = `insert into persona values (null, "${element[0]}", "externo", ${element[2]},"${element[1]}", "profesor", ${req.body.id_proyecto});`; + await req.body.profesor_externo.forEach(async element => { + let cad = `insert into persona values (null, "${element[0]}", "externo", ${element[2]},"${element[1]}", "profesor");`; let respuesta = query(cad); await respuesta.catch(function(reason) { console.log(reason); @@ -49,8 +97,8 @@ app.post('/datos_proyecto_4', async(req, res) => { return; } try { - req.body.alumno_interno.forEach(async element => { - let cad = `insert into persona values (null, "${element[0]}", "interno", null,"${element[1]}", "alumno", ${req.body.id_proyecto});`; + await req.body.alumno_interno.forEach(async element => { + let cad = `insert into persona values (null, "${element[0]}", "interno", ${id_interno},"${element[1]}", "alumno");`; let respuesta = query(cad); await respuesta.catch(function(reason) { console.log(reason); @@ -63,21 +111,21 @@ app.post('/datos_proyecto_4', async(req, res) => { return; } try { - let i = 1; - req.body.alumno_externo.forEach(async element => { - let cad = `insert into persona values (null, "${element[0]}", "externo", ${element[2]}, "${element[1]}", "alumno", ${req.body.id_proyecto});`; + + await req.body.alumno_externo.forEach(async element => { + let cad = `insert into persona values (null, "${element[0]}", "externo", ${element[2]}, "${element[1]}", "alumno");`; let respuesta = query(cad); await respuesta.catch(function(reason) { console.log(reason); res.status(400).json({ error: true, msj: "No se pudo insertar en la base, alumno externo" }); return; }) - if (i == req.body.alumno_externo.length) { - res.status(200).json({ error: false, msj: "exito" }); - return; - } - i++; + + + }) + res.status(200).json({ error: false, msj: "exito" }); + } catch (eror) { res.status(400).json({ error: true, msj: "No se pudo insertar en la base, alumno externo" }); return; diff --git a/routes/descargar_pdf.js b/routes/descargar_pdf.js new file mode 100644 index 0000000..666fc4e --- /dev/null +++ b/routes/descargar_pdf.js @@ -0,0 +1,10 @@ +const connection = require('../conf/connection.js'); +const express = require('express') +var app = express(); + + +app.get('/descargar_pdf', (req, res) => { + res.download(__dirname + `/../public/comprobante-${req.query.id_proyecto}.pdf`); +}) + +module.exports = app; \ No newline at end of file diff --git a/routes/eliminar_proyecto.js b/routes/eliminar_proyecto.js new file mode 100644 index 0000000..3135dea --- /dev/null +++ b/routes/eliminar_proyecto.js @@ -0,0 +1,102 @@ +const connection = require('../conf/connection'); +const express = require('express'); +var app = express(); + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} +app.post('/eliminar_proyecto', async(req, res) => { + let id = req.body.id_proyecto; + console.log("Este es el id del proyecto: ", id); + try { + let cad = `delete from proyecto_campo where id_proyecto=${id};`; + let respuesta = await query(cad); + // console.log(respuesta); + } catch (error) { + console.log(error); + res.status(400).json({ err: true, msj: "Error al eliminar proyecto_campo" }); + return; + } + try { + let cad = `delete from proyecto_linea where id_proyecto=${id};`; + let respuesta = await query(cad); + // console.log(respuesta); + } catch (error) { + console.log(error); + res.status(400).json({ err: true, msj: "Error al eliminar proyecto_linea" }); + return; + } + + + try { + let cad = `delete from proyecto_objetivo where id_proyecto=${id};`; + let respuesta = await query(cad); + // console.log(respuesta); + } catch (error) { + console.log(error); + res.status(400).json({ err: true, msj: "Error al eliminar proyecto_objetivo" }); + return; + } + + try { + let cad = `delete from proyecto_producto where id_proyecto=${id};`; + let respuesta = await query(cad); + // console.log(respuesta); + } catch (error) { + console.log(error); + res.status(400).json({ err: true, msj: "Error al eliminar proyecto_producto" }); + return; + } + + try { + let cad = `select id_pro_entidad from proyecto_entidad where id_proyecto=${id};`; + let respuesta = query(cad); + await respuesta.then(async res => { + await res.forEach(element => { + console.log(element.id_pro_entidad); + let c = `delete from persona where id_proyecto_entidad=${element.id_pro_entidad}`; + let r = query(c); + r.catch(error => { + console.log(error); + res.status(400).json({ err: true, msj: "Error al eliminar persona" }); + return; + }) + }); + }).catch(error => { + console.log(error); + res.status(400).json({ err: true, msj: "Error al seleccionar id" }); + return; + }); + cad = `delete from proyecto_entidad where id_proyecto=${id};`; + respuesta = query(cad); + await respuesta.catch(error => { + console.log(error); + res.status(400).json({ err: true, msj: "Error al eliminar proyecto_entidad_total" }); + return; + }) + } catch (error) { + console.log(error); + res.status(400).json({ err: true, msj: "Error al eliminar proyecto_entidad" }); + return; + } + + try { + let cad = `delete from proyecto where id_proyecto=${id};`; + let respuesta = await query(cad); + console.log(respuesta); + } catch (error) { + console.log(error); + res.status(400).json({ err: true, msj: "Error al eliminar proyecto" }); + return; + } + res.status(200).json({ err: false, msj: "exito" }); + return; + + +}); +module.exports = app; \ No newline at end of file diff --git a/routes/get_pdf.js b/routes/get_pdf.js new file mode 100644 index 0000000..250cd5d --- /dev/null +++ b/routes/get_pdf.js @@ -0,0 +1,16 @@ +const connection = require('../conf/connection.js'); +const fs = require('fs'); +const express = require('express') +var app = express(); +var pdf = require('./pdf.js'); +const path = require('path'); + +app.get('/get_pdf', async(req, res) => { + console.log("get pdf id_ proyecto: ", req.query.id_proyecto); + console.log("todo el query en get pdf es: ", req.query); + await pdf(req.query.id_proyecto); + res.status(200).json({ err: false, msj: " listo" }); + + }) + //pdf(req.query.idPersona).then(res.status(200).json({ err: false, msj: 'exito' })); +module.exports = app; \ No newline at end of file diff --git a/routes/index.js b/routes/index.js index 6df1381..f7aa883 100644 --- a/routes/index.js +++ b/routes/index.js @@ -5,4 +5,17 @@ app.use(require('./datos_proyecto_1')); app.use(require('./datos_proyecto_2')); app.use(require('./datos_proyecto_3')); app.use(require('./datos_proyecto_4')); +app.use(require('./busca_profesor')); +app.use(require('./traer_campos')); +app.use(require('./traer_lineas')); +app.use(require('./traer_entidades')); +app.use(require('./traer_productos')); +app.use(require('./traer_entidades_proyecto')); +app.use(require('./eliminar_proyecto')); +app.use(require('./get_pdf')); +app.use(require('./descargar_pdf')); +app.use(require('./traer_proyectos')); +app.use(require('./traer_datos_proyecto')); +app.use(require('./datos_profe')); +app.use(require('./datos_modificar')); module.exports = app; \ No newline at end of file diff --git a/routes/pdf.js b/routes/pdf.js new file mode 100644 index 0000000..4a11e7d --- /dev/null +++ b/routes/pdf.js @@ -0,0 +1,361 @@ +'use strict'; + +var fs = require('fs'); +var PDFDocument = require('pdfkit'); +const connection = require('../conf/connection'); +const express = require('express'); +var app = express(); +const sql = require('mssql') + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} + + + +let g_pdf = async function hacer(id_proyecto) { + + let id = id_proyecto; + const doc = new PDFDocument({ size: 'A4' }); + doc.pipe(fs.createWriteStream(__dirname + `/../public/comprobante-${id}.pdf`)); + + + + console.log("el id proyetco en pdf= ", id); + + + + let inicio = 120; + var datetime = new Date(); + var anio = new Date(); + anio = anio.getFullYear(); + + + doc.image(__dirname + '/Imagenes/logo_unam.png', inicio, 30, { scale: 0.04 }); + + doc.font('Times-Roman') + .fontSize(10) + .text('UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO', inicio + 60, 40); + doc.font('Times-Roman') + .fontSize(10) + .text('FACULTAD DE ESTUDIOS SUPERIORES ACATLÁN', inicio + 66, 50); + doc.font('Times-Roman') + .fontSize(10) + .text(`Red de Investigación ${ anio }`, inicio + 127, 70); + + doc.image(__dirname + '/Imagenes/Fesa.jpg', inicio + 305, 30, { scale: 0.05 }); + + doc.moveTo(70, 100) + .lineTo(542, 100).stroke(); + + + let datos = ''; + //console.log(id); + + let cad = `select * from proyecto where id_proyecto=${ id };`; + let respuesta = query(cad); + await respuesta.then(element => { + datos = element[0]; + console.log(datos); + + }).catch(error => { return error; }); + + + let sang = 70; + //console.log("datos ", datos); + doc.moveDown().font('Helvetica-Bold').fontSize(10).text("Datos del profesor responsable del proyecto de invesitgación", sang + 80, 120); + + + + doc.font('Times-Roman').moveDown().fontSize(10).text(`Nombre del profesor: ${ datos.nombre_responsable }`, sang); + + try { + let pass = "67NHA*Y"; + // make sure that any items are correctly URL encoded in the connection string + await sql.connect(`mssql://USR_REDINVESTIGACION:${pass}@132.248.180.228/DB_ARES`) + const result = await sql.query `EXEC DB_ARES.dbo.SPD_CONSULTA_DATOS_X_PROFESOR_RED_INVESTIGACION ${datos.rfc_responsable};` + // console.log("sss"); + // console.log(result.recordsets); + console.log("datos ", datos.rfc_responsable, ' ', result.recordsets[0][0]); + let base = result.recordsets[0][0]; + doc.font('Times-Roman').moveDown().fontSize(10).text(`Numero de trabajador: ${ base.Numero_Trabajador } RFC: ${ base.Rfc }`, sang); + doc.font('Times-Roman').moveDown().fontSize(10).text(`Categoria: ${ base.Categoria }`, sang); + doc.font('Times-Roman').moveDown().fontSize(10).text(`Adscripcion: ${ base.Adscripcion }`, sang); + doc.font('Times-Roman').moveDown().fontSize(10).text(`Nivel maximo de estudios: ${ base['Nivel maximo de estudios'] }`, sang); + doc.font('Times-Roman').moveDown().fontSize(10).text(`Telefono de oficina: ${ base['Tel. oficina'] } Extensión: ${ base['Extensión'] }`, sang); + doc.font('Times-Roman').moveDown().fontSize(10).text(`Telefono particular: ${ base.Particular } Celular: ${ base.Celular }`, sang); + doc.font('Times-Roman').moveDown().fontSize(10).text(`Correo institucional: ${ base['Correo Institucional'] } `, sang); + doc.font('Times-Roman').moveDown().fontSize(10).text(`Correo personal: ${ base['Correo Personal'] } `, sang); + doc.font('Times-Roman').moveDown().fontSize(10).text(`Espacio fisico: ${ base.EspacioFisico } Edificio: ${base.Edificio}`, sang); + + + + } catch (err) { + console.log(err); + } + + + + + + + + doc.moveDown().font('Helvetica-Bold').fontSize(10).text("Datos del proyecto de investigación", sang + 140); + doc.font('Times-Roman').moveDown().fontSize(10).text(`Nombre del proyecto: ${ datos.nombre_proyecto }`, sang); + + let campo = ''; + try { + let cad = `select nombre from campo_conocimiento inner join proyecto_campo on id_proyecto=${ id } and proyecto_campo.id_campo = campo_conocimiento.id_campo;`; + respuesta = await query(cad); + //console.log(respuesta); + for (let i = 0; i < respuesta.length; i++) { + campo += respuesta[i].nombre; + if (i < respuesta.length - 2) + campo += ', '; + if (i == respuesta.length - 2) + campo += ' y '; + } + //console.log(campo); + } catch { + return; + } + doc.moveDown().fontSize(10).text(`Campo de conocimiento: ${ campo }`, { + x: sang + }); + + doc.moveDown().fontSize(10).text(`Disciplina: ${ datos.disciplina }`, { + x: sang + }); + + let linea = ''; + try { + let cad = `select nombre from linea_investigacion inner join proyecto_linea on id_proyecto=${ id } and linea_investigacion.id_linea_investigacion=proyecto_linea.id_linea_investigacion;`; + respuesta = await query(cad); + //console.log(respuesta); + for (let i = 0; i < respuesta.length; i++) { + linea += respuesta[i].nombre; + if (i < respuesta.length - 2) + linea += ', '; + if (i == respuesta.length - 2) + linea += ' y '; + } + + } catch { + return; + } + + doc.moveDown().fontSize(10).text(`Linea de Investigación: ${ linea }`, { + x: sang + }); + + doc.moveDown().fontSize(10).text(`Objetivo general: ${ datos.objetivo_general }`, { + x: sang + }); + + doc.moveDown().fontSize(10).text(`Objetivo particular:`); + try { + let cad = `select objetivo_texto from proyecto_objetivo where id_proyecto=${ id };`; + respuesta = await query(cad); + //console.log(respuesta); + for (let i = 0; i < respuesta.length; i++) { + doc.moveDown(.5).fontSize(10).text(` ${ i + 1 }.- ${ respuesta[i].objetivo_texto }`); + } + + + } catch { + return; + } + + doc.moveDown().fontSize(10).text(`Hipotesis(en su caso): ${ datos.hipotesis }`); + + doc.moveDown().fontSize(10).text(`Resumen del proyecto de investigacion: ${ datos.resumen }`); + + let f_i = new Date(datos.fecha_inicio); + let an = f_i.getFullYear(); + let m = f_i.getMonth() + 1; + //console.log(m.length); + if (m < 10) + m = '0' + m; + let d = f_i.getDate(); + if (d < 10) + d = '0' + d; + doc.moveDown().fontSize(10).text(`Fecha de inicio(dd / mm / aaaa): ${ d } / ${m} / ${ an }`); + + let f_f = new Date(datos.fecha_final); + + let ano = f_f.getFullYear(); + + let mes = f_f.getMonth() + 1; + //console.log(m.length); + if (mes < 10) + mes = '0' + mes; + let dia = f_f.getDate(); + + if (dia < 10) + dia = '0' + dia; + doc.moveDown().fontSize(10).text(`Fecha de final(dd / mm / aaaa): ${ dia } / ${mes} / ${ ano }`); + + doc.moveDown().fontSize(10).text(`Estado de avance: ${ datos.estado_avance }`); + + doc.moveDown().fontSize(10).text(`Avance: ${ datos.avance } %`); + + doc.moveDown().fontSize(10).text(`Duración: ${ datos.duracion }`); + + doc.moveDown().fontSize(10).text(`Financiamiento del proyecto: ${ datos.financiamiento }`); + + doc.moveDown().fontSize(10).text(`Número del registro: ${ datos.numero_registro }`); + + doc.moveDown().fontSize(10).text(`Entidades participantes(ademas de la FES Acatlán): `); + + try { + let cad = `select tipo, nombre_entidad from entidades inner join proyecto_entidad where id_proyecto=${ id } and proyecto_entidad.id_entidad=entidades.id_entidad;`; + respuesta = await query(cad); + //console.log(respuesta); + for (let i = 0; i < respuesta.length; i++) { + doc.moveDown(.5).fontSize(10).text(` ${ i + 1 }. - ${ respuesta[i].tipo }: ${ respuesta[i].nombre_entidad }`); + } + + + } catch { + return; + } + + try { + let cad = `select nombre from producto as p inner join proyecto_producto as p_p where p_p.id_proyecto =${ id } and p_p.id_producto=p.id_producto;`; + respuesta = await query(cad); + if (respuesta.length > 1) + doc.moveDown().fontSize(10).text(`Producto(s): `); + else + doc.moveDown().fontSize(10).text(`Producto: `); + //console.log(respuesta); + for (let i = 0; i < respuesta.length; i++) { + doc.moveDown(.5).fontSize(10).text(` ${ i + 1 }.- ${ respuesta[i].nombre }`); + } + } catch { + return; + } + + let alumnos_internos = null; + let alumnos_externos = null; + let profesores_internos = null; + let profesores_externos = null; + try { + let cad = `select nombre, tipo_particicipacion from persona as p inner join proyecto_entidad as p_e where p_e.nombre_entidad = "FES-Acatlan"and p_e.id_pro_entidad = p.id_proyecto_entidad and p.tipo = "alumno"and p_e.id_proyecto = ${ id };`; + alumnos_internos = await query(cad); + + } catch (error) { + console.log(error); + return; + } + + + try { + let cad = `select nombre, tipo_particicipacion, nombre_entidad, e.tipo from persona as p inner join proyecto_entidad as p_e inner join entidades as e where e.id_entidad = p_e.id_entidad and p_e.nombre_entidad != "FES-Acatlan"and p_e.id_pro_entidad = p.id_proyecto_entidad and p.tipo = "alumno"and p_e.id_proyecto = ${ id };`; + alumnos_externos = await query(cad); + } catch { + return; + } + + try { + let cad = `select nombre, tipo_particicipacion from persona as p inner join proyecto_entidad as p_e where p_e.nombre_entidad = "FES-Acatlan"and p_e.id_pro_entidad = p.id_proyecto_entidad and p.tipo = "profesor"and p_e.id_proyecto = ${ id };`; + profesores_internos = await query(cad); + } catch { + return; + } + + try { + let cad = `select nombre, tipo_particicipacion, nombre_entidad, e.tipo from persona as p inner join proyecto_entidad as p_e inner join entidades as e where e.id_entidad = p_e.id_entidad and p_e.nombre_entidad != "FES-Acatlan"and p_e.id_pro_entidad = p.id_proyecto_entidad and p.tipo = "profesor"and p_e.id_proyecto = ${ id };`; + profesores_externos = await query(cad); + } catch { + return; + } + + if (profesores_internos.length != 0) { + doc.moveDown().fontSize(10).text(`Profesores Internos Participantes: `); + for (let i = 0; i < profesores_internos.length; i++) { + doc.moveDown(.5).fontSize(10).text(` ${ profesores_internos[i].nombre } - ${ profesores_internos[i].tipo_particicipacion }`); + } + } else { + doc.moveDown().fontSize(10).text(`Profesores Internos Participantes: No se registro`); + } + + if (profesores_externos.length != 0) { + doc.moveDown().fontSize(10).text(`Profesores Externos Participantes: `); + for (let i = 0; i < profesores_externos.length; i++) { + + doc.moveDown(.5).fontSize(10).text(` ${ profesores_externos[i].nombre } - ${ profesores_externos[i].tipo_particicipacion } - ${ profesores_externos[i].nombre_entidad }`); + } + } else { + doc.moveDown().fontSize(10).text(`Profesores Externos Participantes: No se registro`); + } + + if (alumnos_internos.length != 0) { + doc.moveDown().fontSize(10).text(`Alumnos Internos Participantes: `); + for (let i = 0; i < alumnos_internos.length; i++) { + doc.moveDown(.5).fontSize(10).text(` ${ alumnos_internos[i].nombre } - ${ alumnos_internos[i].tipo_particicipacion }`); + } + } else { + doc.moveDown().fontSize(10).text(`Alumnos Internos Participantes: No se registro`); + } + + if (alumnos_externos.length != 0) { + doc.moveDown().fontSize(10).text(`Alumnos Externos Participantes: `); + for (let i = 0; i < alumnos_externos.length; i++) { + + doc.moveDown(.5).fontSize(10).text(` ${ alumnos_externos[i].nombre } - ${ alumnos_externos[i].tipo_particicipacion } - ${ alumnos_externos[i].nombre_entidad }`); + } + } else { + doc.moveDown().fontSize(10).text(`Alumnos Externos Participantes: No se registro`); + } + + f_f = new Date(datos.fecha_creacion); + + ano = f_f.getFullYear(); + + mes = f_f.getMonth() + 1; + //console.log(m.length); + if (mes < 10) + mes = '0' + mes; + dia = f_f.getDate(); + + if (dia < 10) + dia = '0' + dia; + doc.moveDown().fontSize(10).text(`Fecha de creación (dd / mm / aaaa): ${ dia } / ${mes} / ${ ano }`); + + f_f = new Date(datos.fecha_modificiacion); + + ano = f_f.getFullYear(); + + mes = f_f.getMonth() + 1; + //console.log(m.length); + if (mes < 10) + mes = '0' + mes; + dia = f_f.getDate(); + + if (dia < 10) + dia = '0' + dia; + doc.moveDown().fontSize(10).text(`Ultima fecha de modificación (dd / mm / aaaa): ${ dia } / ${mes} / ${ ano }`); + + doc.moveDown(5).fontSize(12).text(`Lugar: __________________________ `); + + doc.moveDown().fontSize(12).text(`Nombre: __________________________ `); + + doc.moveDown().fontSize(12).text(`Firma: __________________________ `); + + + // console.log(profesores_internos); + // console.log(profesores_externos); + // console.log(alumnos_internos); + // console.log(alumnos_externos); + + + doc.end(); + + return "acabo papa"; +} +module.exports = g_pdf; \ No newline at end of file diff --git a/routes/traer_campos.js b/routes/traer_campos.js new file mode 100644 index 0000000..96b3bb7 --- /dev/null +++ b/routes/traer_campos.js @@ -0,0 +1,28 @@ +const connection = require('../conf/connection'); +const express = require('express'); +var app = express(); + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} +app.post('/traer_campos', async(req, res) => { + try { + let cad = 'select * from campo_conocimiento;'; + let respuesta = await query(cad); + // console.log(respuesta); + res.status(200).json({ campos: respuesta }); + return; + + + } catch (error) { + console.log(error); + res.status(400).json({ err: true, msj: "Error al traer los campos" }); + return; + } +}); +module.exports = app; \ No newline at end of file diff --git a/routes/traer_datos_proyecto.js b/routes/traer_datos_proyecto.js new file mode 100644 index 0000000..8b057ff --- /dev/null +++ b/routes/traer_datos_proyecto.js @@ -0,0 +1,134 @@ +const connection = require('../conf/connection'); +const express = require('express'); +var app = express(); + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} +app.get('/traer_datos_proyecto', async(req, res) => { + const id = req.query.id_proyecto; + //console.log(id); + let respuesta = {}; + try { + let cad = `select * from proyecto where id_proyecto=${id}`; + let r = await query(cad); + respuesta.proyecto = r; + + } catch { + return; + } + try { + let campo = ''; + let cad = `select nombre from campo_conocimiento as c inner join proyecto_campo as p where p.id_proyecto=${id} and p.id_campo=c.id_campo;`; + let r = await query(cad); + for (let i = 0; i < r.length; i++) { + campo += r[i].nombre; + if (i < r.length - 2) + campo += ', '; + if (i == r.length - 2) + campo += ' y '; + } + respuesta.campo_proyecto = campo; + + } catch { + return; + } + + + try { + let cad = `select nombre from linea_investigacion as l inner join proyecto_linea as p where p.id_proyecto=${id} and p.id_linea_investigacion=l.id_linea_investigacion;`; + let r = await query(cad); + let linea = ''; + for (let i = 0; i < r.length; i++) { + linea += r[i].nombre; + if (i < r.length - 2) + linea += ', '; + if (i == r.length - 2) + linea += ' y '; + } + + respuesta.linea_investigacion = linea; + + } catch (error) { + res.status(400).json({ msj: "MALO", res: error }) + } + + try { + let cad = `select objetivo_texto from proyecto_objetivo where id_proyecto=${id} ;`; + let r = await query(cad); + + respuesta.objetivo = r; + + } catch (error) { + res.status(400).json({ msj: "MALO", res: error }) + } + + + try { + let cad = `select nombre from producto as p inner join proyecto_producto as pp where pp.id_proyecto=${id} and p.id_producto=pp.id_producto;`; + let r = await query(cad); + respuesta.producto = r; + + } catch (error) { + res.status(400).json({ msj: "MALO", res: error }) + } + + + try { + let cad = `select tipo, nombre_entidad from entidades inner join proyecto_entidad where id_proyecto=${ id } and proyecto_entidad.id_entidad=entidades.id_entidad;`; + let r = await query(cad); + //console.log("entidad ", r); + respuesta.entidad = r; + + } catch (error) { + res.status(400).json({ msj: "MALO", res: error }) + } + + try { + let cad = `select nombre, tipo_particicipacion from persona as p inner join proyecto_entidad as p_e where p_e.nombre_entidad = "FES-Acatlan"and p_e.id_pro_entidad = p.id_proyecto_entidad and p.tipo = "alumno"and p_e.id_proyecto = ${ id };`; + let r = await query(cad); + respuesta.alumnos_internos = r; + + } catch (error) { + res.status(400).json({ msj: "MALO", res: error }) + } + + + try { + let cad = `select nombre, tipo_particicipacion, nombre_entidad, e.tipo from persona as p inner join proyecto_entidad as p_e inner join entidades as e where e.id_entidad = p_e.id_entidad and p_e.nombre_entidad != "FES-Acatlan"and p_e.id_pro_entidad = p.id_proyecto_entidad and p.tipo = "alumno"and p_e.id_proyecto = ${ id };`; + let r = await query(cad); + respuesta.alumnos_externos = r; + + } catch (error) { + res.status(400).json({ msj: "MALO", res: error }) + } + + try { + let cad = `select nombre, tipo_particicipacion from persona as p inner join proyecto_entidad as p_e where p_e.nombre_entidad = "FES-Acatlan"and p_e.id_pro_entidad = p.id_proyecto_entidad and p.tipo = "profesor"and p_e.id_proyecto = ${ id };`; + let r = await query(cad); + respuesta.profesores_internos = r; + + } catch (error) { + res.status(400).json({ msj: "MALO", res: error }) + } + + try { + let cad = `select nombre, tipo_particicipacion, nombre_entidad, e.tipo from persona as p inner join proyecto_entidad as p_e inner join entidades as e where e.id_entidad = p_e.id_entidad and p_e.nombre_entidad != "FES-Acatlan"and p_e.id_pro_entidad = p.id_proyecto_entidad and p.tipo = "profesor"and p_e.id_proyecto = ${ id };`; + let r = await query(cad); + respuesta.profesores_externos = r; + + } catch (error) { + res.status(400).json({ msj: "MALO", res: error }) + } + + + + + res.status(200).json({ msj: "exito", data: respuesta }) +}); +module.exports = app; \ No newline at end of file diff --git a/routes/traer_entidades.js b/routes/traer_entidades.js new file mode 100644 index 0000000..39741b7 --- /dev/null +++ b/routes/traer_entidades.js @@ -0,0 +1,28 @@ +const connection = require('../conf/connection'); +const express = require('express'); +var app = express(); + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} +app.post('/traer_entidades', async(req, res) => { + try { + let cad = 'select * from entidades;'; + let respuesta = await query(cad); + // console.log(respuesta); + res.status(200).json({ entidades: respuesta }); + return; + + + } catch (error) { + console.log(error); + res.status(400).json({ err: true, msj: "Error al traer los campos" }); + return; + } +}); +module.exports = app; \ No newline at end of file diff --git a/routes/traer_entidades_proyecto.js b/routes/traer_entidades_proyecto.js new file mode 100644 index 0000000..3163e4b --- /dev/null +++ b/routes/traer_entidades_proyecto.js @@ -0,0 +1,30 @@ +const connection = require('../conf/connection'); +const express = require('express'); +var app = express(); + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} +app.post('/traer_entidades_proyecto', async(req, res) => { + try { + let id = req.body.id_proyecto; + + let cad = `select nombre_entidad,id_pro_entidad from proyecto_entidad where id_proyecto=${id};`; + let respuesta = await query(cad); + // console.log(respuesta); + res.status(200).json({ entidad_proyecto: respuesta }); + return; + + + } catch (error) { + console.log(error); + res.status(400).json({ err: true, msj: "Error al traer las lineas" }); + return; + } +}); +module.exports = app; \ No newline at end of file diff --git a/routes/traer_lineas.js b/routes/traer_lineas.js new file mode 100644 index 0000000..45aafdc --- /dev/null +++ b/routes/traer_lineas.js @@ -0,0 +1,28 @@ +const connection = require('../conf/connection'); +const express = require('express'); +var app = express(); + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} +app.post('/traer_lineas', async(req, res) => { + try { + let cad = 'select * from linea_investigacion;'; + let respuesta = await query(cad); + // console.log(respuesta); + res.status(200).json({ lineas: respuesta }); + return; + + + } catch (error) { + console.log(error); + res.status(400).json({ err: true, msj: "Error al traer las lineas" }); + return; + } +}); +module.exports = app; \ No newline at end of file diff --git a/routes/traer_productos.js b/routes/traer_productos.js new file mode 100644 index 0000000..fc24bca --- /dev/null +++ b/routes/traer_productos.js @@ -0,0 +1,28 @@ +const connection = require('../conf/connection'); +const express = require('express'); +var app = express(); + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} +app.post('/traer_productos', async(req, res) => { + try { + let cad = 'select * from producto;'; + let respuesta = await query(cad); + // console.log(respuesta); + res.status(200).json({ productos: respuesta }); + return; + + + } catch (error) { + console.log(error); + res.status(400).json({ err: true, msj: "Error al traer los campos" }); + return; + } +}); +module.exports = app; \ No newline at end of file diff --git a/routes/traer_proyectos.js b/routes/traer_proyectos.js new file mode 100644 index 0000000..c204cff --- /dev/null +++ b/routes/traer_proyectos.js @@ -0,0 +1,29 @@ +const connection = require('../conf/connection'); +const express = require('express'); +var app = express(); + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} +app.get('/traer_proyectos', async(req, res) => { + let respuesta; + try { + let nom = req.body.nombre; + // console.log(nom); + let cad = `select id_proyecto,nombre_proyecto,nombre_responsable from proyecto;`; + respuesta = await query(cad); + console.log(respuesta); + } catch (error) { + console.log(error); + res.status(400).json({ error: true, msj: "Error al verificar el nombre del proyecto" }); + return; + } + res.status(200).json({ err: false, msj: "exito", data: respuesta }); + +}) +module.exports = app; \ No newline at end of file