From 95f6afe63dac1cbc0040ccc4cad99f245e7a6741 Mon Sep 17 00:00:00 2001 From: ajmannust41288 <124865655+ajmannust41288@users.noreply.github.com> Date: Thu, 23 Feb 2023 20:41:06 +0500 Subject: [PATCH 1/4] Day2 --- nodejsTask | 1 + 1 file changed, 1 insertion(+) create mode 100644 nodejsTask diff --git a/nodejsTask b/nodejsTask new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/nodejsTask @@ -0,0 +1 @@ + From 0749eab69f463f5e0804a560e898ca7b9079e3ae Mon Sep 17 00:00:00 2001 From: ajmannust41288 <124865655+ajmannust41288@users.noreply.github.com> Date: Thu, 23 Feb 2023 20:43:23 +0500 Subject: [PATCH 2/4] Day2Nodejs Tasks http,server,Expressjs --- app.js | 2 + data.js | 5 + index.js | 52 +- log.js | 12 + message.js | 7 + mylogfile.log | 0 package-lock.json | 1741 ++++++++++++++++++++++++++++++++++++++++++++- package.json | 25 +- person.js | 7 + project.log | 0 server.js | 70 ++ 11 files changed, 1877 insertions(+), 44 deletions(-) create mode 100644 app.js create mode 100644 log.js create mode 100644 message.js create mode 100644 mylogfile.log create mode 100644 person.js create mode 100644 project.log create mode 100644 server.js diff --git a/app.js b/app.js new file mode 100644 index 0000000..597c4dc --- /dev/null +++ b/app.js @@ -0,0 +1,2 @@ +var mymodule=require('./log.js'); +mymodule.info(' This is my first nodjs'); \ No newline at end of file diff --git a/data.js b/data.js index e69de29..2aba4cb 100644 --- a/data.js +++ b/data.js @@ -0,0 +1,5 @@ +module.exports={ + firstName:'Wakil', + middleName:'khan', + lastName:'wazir' +}; \ No newline at end of file diff --git a/index.js b/index.js index 1e798c2..d610cb6 100644 --- a/index.js +++ b/index.js @@ -1,20 +1,36 @@ -// var mysql = require('mysql'); +//====================================simple-node-logger uses +// const log = require('simple-node-logger').createSimpleLogger('project.log'); +// const SimpleNodeLogger = require('simple-node-logger'), +// opts = { +// logFilePath:'mylogfile.log', +// timestampFormat:'YYYY-MM-DD HH:mm:ss.SSS' +// }, +// log = SimpleNodeLogger.createSimpleLogger( opts ); +// const log = require('simple-node-logger').createSimpleFileLogger('project.log'); +//sting literal exxports -// var con = mysql.createConnection({ -// host: "localhost", -// user: "yourusername", -// password: "yourpassword", -// database: "mydb" -// }); +// var msg=require('./message.js'); +// console.warn(msg); +//==================================== exports object +// var msg=require('./message.js'); +// msg.log('hello wazir'); +//============================================================ +// var person=require('./data.js'); +// console.log('person full name is : '+person.firstName+' '+person.middleName+' '+person.lastName); +//================================================================= +// var person=require('./person.js'); +// var person1=new person('jameski','borton'); +// console.log(person1.fullName()); +//============================================expressjs +// const express = require('express') +// const app = express() +// const port = 3000 -// con.connect(function(err) { -// if (err) throw err; -// console.log("Connected!"); -// var sql = "CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))"; -// con.query(sql, function (err, result) { -// if (err) throw err; -// console.log("Table created"); -// }); -// }); -const color=require("color"); -console.log("hello".red); \ No newline at end of file +// app.get('/', (req, res) => { +// res.send('Hello World!'); + +// }) + +// app.listen(port, () => { +// console.log(`Example app listening on port ${port}`) +// }) \ No newline at end of file diff --git a/log.js b/log.js new file mode 100644 index 0000000..461057c --- /dev/null +++ b/log.js @@ -0,0 +1,12 @@ +var log={ + info:function(info){ + console.log('info'+info); + }, + warning:function(warning){ + console.log('warning'+warning); + }, + error:function(error){ + console.log('error'+error); + } +}; +module.exports=log; \ No newline at end of file diff --git a/message.js b/message.js new file mode 100644 index 0000000..1e9bba9 --- /dev/null +++ b/message.js @@ -0,0 +1,7 @@ +// module.exports='hello world'; +//==================================== exports object +// exports.SimpleMessage='Hello ajman'; +//============================================= +module.exports.log = function (msg) { + console.log(msg); +}; diff --git a/mylogfile.log b/mylogfile.log new file mode 100644 index 0000000..e69de29 diff --git a/package-lock.json b/package-lock.json index b2f1648..5caf2bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "tut", "version": "1.0.0", - "lockfileVersion": 3, + "lockfileVersion": 2, "requires": true, "packages": { "": { @@ -9,19 +9,159 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "chalk": "^5.2.0", - "color": "^4.2.3" + "color": "^4.2.3", + "express": "^4.18.2", + "nodemon": "^2.0.20", + "simple-node-logger": "^21.8.12" } }, - "node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, "node_modules/color": { @@ -61,11 +201,717 @@ "simple-swizzle": "^0.2.2" } }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/is-arrayish": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nodemon": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", + "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-node-logger": { + "version": "21.8.12", + "resolved": "https://registry.npmjs.org/simple-node-logger/-/simple-node-logger-21.8.12.tgz", + "integrity": "sha512-RPImnYDq3jdUjaTvYLghaF1n65Dd0LV8hdZtlT0X1NZBAkw+lx0ZJtFydcUyYKjg0Yxd27AW9IAIc3OLhTjBzA==", + "dependencies": { + "lodash": "^4.17.12", + "moment": "^2.20.1" + } + }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -73,6 +919,883 @@ "dependencies": { "is-arrayish": "^0.3.1" } + }, + "node_modules/simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "dependencies": { + "semver": "~7.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + } + }, + "dependencies": { + "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.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "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" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "requires": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "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-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "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-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "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.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "nodemon": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", + "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==", + "requires": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "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.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "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" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "simple-node-logger": { + "version": "21.8.12", + "resolved": "https://registry.npmjs.org/simple-node-logger/-/simple-node-logger-21.8.12.tgz", + "integrity": "sha512-RPImnYDq3jdUjaTvYLghaF1n65Dd0LV8hdZtlT0X1NZBAkw+lx0ZJtFydcUyYKjg0Yxd27AW9IAIc3OLhTjBzA==", + "requires": { + "lodash": "^4.17.12", + "moment": "^2.20.1" + } + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "requires": { + "is-arrayish": "^0.3.1" + } + }, + "simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "requires": { + "semver": "~7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + } + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "requires": { + "nopt": "~1.0.10" + } + }, + "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" + } + }, + "undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" } } } diff --git a/package.json b/package.json index 2bfefc0..9d2cf70 100644 --- a/package.json +++ b/package.json @@ -1,30 +1,21 @@ { "name": "tut", "version": "1.0.0", - "description": "step by step node js lectures with practices", - "main": "index2.js", + "description": "First package of nodejs", + "main": "app.js", "type": "commonjs", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, - "repository": { - "type": "git", - "url": "https://github.com/ajmannust41288/nodejs" - }, "keywords": [ - "Nodejs", - "best", - "tutorials" + "ajman" ], - "author": "Ajman khan Nustian", + "author": "ajman nustian", "license": "ISC", - "bugs": { - "url": "https://github.com/ajmannust41288/nodejs/issues" - }, - "homepage": "https://github.com/ajmannust41288/nodejs#readme", "dependencies": { - "chalk": "^5.2.0", - "color": "^4.2.3" + "color": "^4.2.3", + "express": "^4.18.2", + "nodemon": "^2.0.20", + "simple-node-logger": "^21.8.12" } - } diff --git a/person.js b/person.js new file mode 100644 index 0000000..c7edd05 --- /dev/null +++ b/person.js @@ -0,0 +1,7 @@ +module.exports=function(firstName,lastName){ + this.firstName=firstName; + this.lastName=lastName; + this.fullName=function(){ + return this.firstName+''+this.lastName; + } +} \ No newline at end of file diff --git a/project.log b/project.log new file mode 100644 index 0000000..e69de29 diff --git a/server.js b/server.js new file mode 100644 index 0000000..35c702a --- /dev/null +++ b/server.js @@ -0,0 +1,70 @@ +// var http = require('http'); // 1 - Import Node.js core module + +// var server = http.createServer(function (req, res) { // 2 - creating server + +// //handle incomming requests here.. +// res.writeHead('This is me ajman khan wazir') + +// }); + +// server.listen(5000); //3 - listen for any incoming requests + +// console.log('Node.js web server at port 5000 is running..') +//====================================================================example http + +var http = require('http'); // Import Node.js core module + +var server = http.createServer(function (req, res) { //create web server + if (req.url == '/') { //check the URL of the current request + + // set response header + res.writeHead(200, { 'Content-Type': 'text/html' }); + + // set response content + res.write('

This is home Page.

'); + res.end(); + + } + else if (req.url == "/student") { + + res.writeHead(200, { 'Content-Type': 'text/html' }); + res.write('

This is student Page.

'); + res.end(); + + } + else if (req.url == "/admin") { + + res.writeHead(200, { 'Content-Type': 'text/html' }); + res.write('

This is admin Page.

'); + res.end(); + + } + else if (req.url == "/staff") { + + res.writeHead(200, { 'Content-Type': 'text/html' }); + res.write('

This is staff Page. please follow this page for more updates

'); + res.end(); + + } + else if (req.url == "/manager") { + + res.writeHead(200, { 'Content-Type': 'text/html' }); + res.write('

This is manager Page.


please follow this page for more info

'); + res.end(); + + } + else if (req.url == "/manager/sale") { + + res.writeHead(200, { 'Content-Type': 'text/html' }); + res.write('

This is sale account Page.


please follow this page for more info

'); + res.end(); + + } + else + res.end('Invalid Request!'); + +}); + +server.listen(5000); //6 - listen for any incoming requests + +console.log('Node.js web server at port 5000 is running..') \ No newline at end of file From 9f7125e68c7d44b5e5c34efe2325a94f2192b1ac Mon Sep 17 00:00:00 2001 From: ajmannust41288 <124865655+ajmannust41288@users.noreply.github.com> Date: Thu, 23 Feb 2023 20:51:22 +0500 Subject: [PATCH 3/4] cmd running command for testing --- node1.JPG | Bin 0 -> 75935 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 node1.JPG diff --git a/node1.JPG b/node1.JPG new file mode 100644 index 0000000000000000000000000000000000000000..a3e0362221a4890fc035c1a1980e8b7550dc52f3 GIT binary patch literal 75935 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 Jy>Nbv{|`P;hW7vf literal 0 HcmV?d00001 From e83a6ed61f027d50707b23b3d27b73a9f5b94774 Mon Sep 17 00:00:00 2001 From: ajmannust41288 <124865655+ajmannust41288@users.noreply.github.com> Date: Sat, 25 Feb 2023 22:01:53 +0500 Subject: [PATCH 4/4] some https adition --- index2.js | 57 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 44 insertions(+), 13 deletions(-) diff --git a/index2.js b/index2.js index 5061f36..d29b830 100644 --- a/index2.js +++ b/index2.js @@ -43,17 +43,48 @@ //Take advantage of console.log string // const name='Sindre'; // log(chalk.green('Hello %s'),name); -const http=require('http'); -const data=[{name:'ajman1',email:'ajman1234@gmail.com',contact:'52287'}, -{name:'ajman2',email:'ajman234@gmail.com',contact:'58987'}, -{name:'ajman3',email:'ajman145@gmail.com',contact:'5567'}, -{name:'ajman4',email:'ajman12784@gmail.com',contact:'590987'}, -{name:'ajman5',email:'ajman1784@gmail.com',contact:'599287'}, -{name:'ajman6',email:'ajman15434@gmail.com',contact:'577787'}, -{name:'ajman7',email:'ajman12894@gmail.com',contact:'54447'}]; -http.createServer((req,resp)=>{ - resp.writeHead(200,{'Content-Type':'application/json'}); - resp.write(JSON.stringify(data)); - resp.end(); -}).listen(5000); +//=============================================================================================== +//====================================simple-node-logger uses +// const log = require('simple-node-logger').createSimpleLogger('project.log'); +// const SimpleNodeLogger = require('simple-node-logger'), +// opts = { +// logFilePath:'mylogfile.log', +// timestampFormat:'YYYY-MM-DD HH:mm:ss.SSS' +// }, +// log = SimpleNodeLogger.createSimpleLogger( opts ); +// const log = require('simple-node-logger').createSimpleFileLogger('project.log'); +//sting literal exxports +// var msg=require('./message.js'); +// console.warn(msg); +//==================================== exports object +// var msg=require('./message.js'); +// msg.log('hello wazir'); +//============================================================ +// var person=require('./data.js'); +// console.log('person full name is : '+person.firstName+' '+person.middleName+' '+person.lastName); +//================================================================= +// var person=require('./person.js'); +// var person1=new person('jameski','borton'); +// console.log(person1.fullName()); +//============================================expressjs +// const express = require('express') +// const app = express() +// const port = 3000 + +// app.get('/', (req, res) => { +// res.send('Hello World!'); + +// }) + +// app.listen(port, () => { +// console.log(`Example app listening on port ${port}`) +// }) +//====================================================next example of http +var http = require("http"); + +http.createServer(function(request, response) { + response.writeHead(200, {"Content-Type": "text/plain"}); + response.write("Hello World"); + response.end(); +}).listen(8888);