From 36513a4cc5a7192d1ef22c977398e4b4c52ace73 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Mon, 9 May 2022 09:23:09 +0200 Subject: [PATCH 01/24] upd gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..600e365ec --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +**/node_modules \ No newline at end of file From 562c2845e22ef400ecacba7788744aba35a50c30 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Mon, 9 May 2022 12:45:00 +0200 Subject: [PATCH 02/24] upd 4.2 --- app.js | 41 + app/app.js | 0 config/database.js | 3 + ecosystem.config.js | 22 - img/VSC_open.png | Bin 32729 -> 0 bytes img/webstorm_open.png | Bin 90164 -> 0 bytes models/Dices.js | 57 + package-lock.json | 4944 +++++++++++++++++------------------------ package.json | 31 +- routes/players.js | 14 + 10 files changed, 2163 insertions(+), 2949 deletions(-) create mode 100644 app.js delete mode 100755 app/app.js create mode 100644 config/database.js delete mode 100755 ecosystem.config.js delete mode 100644 img/VSC_open.png delete mode 100644 img/webstorm_open.png create mode 100644 models/Dices.js create mode 100644 routes/players.js diff --git a/app.js b/app.js new file mode 100644 index 000000000..7073c04eb --- /dev/null +++ b/app.js @@ -0,0 +1,41 @@ +const express = require('express'); +const { Sequelize } = require('sequelize'); + +// Database +const db = new Sequelize('mysql://test:1234@localhost:3306/dices'); + +db.authenticate() + .then(()=>console.log('Database connected...')) + .catch (err => console.log('Error ' + err)); + + +console.log("database name " + db.getDatabaseName()); + +db.drop().then(res=>console.log("everything deleted")).catch(err=>console.log("error deleting")); + +db.dropAllSchemas().then(res=>console.log("everything deleted")).catch(err=>console.log("error deleting")); + +db.query('show tables').then(function(rows) { + console.log(JSON.stringify(rows)); +}); + +// const Player = db.define('player', { +// player_id: { +// type: Sequelize.INTEGER, +// autoIncrement: true, +// primaryKey: true +// }, +// username: { +// type: Sequelize.STRING, +// defaultValue: null, +// allowNull: true +// } +// }) + + +// Player.findAll() +// .then (player =>{ +// console.log(player); +// res.send(200); +// }) +// .catch(err => console.log(err)); diff --git a/app/app.js b/app/app.js deleted file mode 100755 index e69de29bb..000000000 diff --git a/config/database.js b/config/database.js new file mode 100644 index 000000000..6d8a33489 --- /dev/null +++ b/config/database.js @@ -0,0 +1,3 @@ +const { Sequelize } = require('sequelize'); + +module.exports = new Sequelize('mysql://test:1234@localhost:3306/dices') \ No newline at end of file diff --git a/ecosystem.config.js b/ecosystem.config.js deleted file mode 100755 index 2213b9069..000000000 --- a/ecosystem.config.js +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = { - apps : [{ - script: 'index.js', - watch: '.' - }, { - script: './service-worker/', - watch: ['./service-worker'] - }], - - deploy : { - production : { - user : 'SSH_USERNAME', - host : 'SSH_HOSTMACHINE', - ref : 'origin/master', - repo : 'GIT_REPOSITORY', - path : 'DESTINATION_PATH', - 'pre-deploy-local': '', - 'post-deploy' : 'npm install && pm2 reload ecosystem.config.js --env production', - 'pre-setup': '' - } - } -}; diff --git a/img/VSC_open.png b/img/VSC_open.png deleted file mode 100644 index 6a86326220f546d67344dcdb977bf1477effc201..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32729 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%0Ad>z)jn`rp}RJHIe$E`aGFeIk@IWrH>cUb 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%0DIKeuLoemT2eIqe6+-|Xz!sfn*K9l`b(1Zk% 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�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 oh<%cqz-w}=6.0" - } - }, - "node_modules/@opencensus/propagation-b3": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@opencensus/propagation-b3/-/propagation-b3-0.0.8.tgz", - "integrity": "sha512-PffXX2AL8Sh0VHQ52jJC4u3T0H6wDK6N/4bg7xh4ngMYOIi13aR1kzVvX1sVDBgfGwDOkMbl4c54Xm3tlPx/+A==", - "dependencies": { - "@opencensus/core": "^0.0.8", - "uuid": "^3.2.1" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@opencensus/propagation-b3/node_modules/@opencensus/core": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.8.tgz", - "integrity": "sha512-yUFT59SFhGMYQgX0PhoTR0LBff2BEhPrD9io1jWfF/VDbakRfs6Pq60rjv0Z7iaTav5gQlttJCX2+VPxFWCuoQ==", - "dependencies": { - "continuation-local-storage": "^3.2.1", - "log-driver": "^1.2.7", - "semver": "^5.5.0", - "shimmer": "^1.2.0", - "uuid": "^3.2.1" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@pm2/agent": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-1.0.8.tgz", - "integrity": "sha512-r8mud8BhBz+a2yjlgtk+PBXUR5EQ9UKSJCs232OxfCmuBr1MZw0Mo+Kfog6WJ8OmVk99r1so9yTUK4IyrgGcMQ==", - "dependencies": { - "async": "~3.2.0", - "chalk": "~3.0.0", - "dayjs": "~1.8.24", - "debug": "~4.3.1", - "eventemitter2": "~5.0.1", - "fclone": "~1.0.11", - "nssocket": "0.6.0", - "pm2-axon": "~4.0.1", - "pm2-axon-rpc": "~0.7.0", - "proxy-agent": "~4.0.1", - "semver": "~7.2.0", - "ws": "~7.2.0" - } - }, - "node_modules/@pm2/agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@pm2/agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@pm2/agent/node_modules/semver": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.2.3.tgz", - "integrity": "sha512-utbW9Z7ZxVvwiIWkdOMLOR9G/NFXh2aRucghkVrEMJWuC++r3lCkBC3LwqBinyHzGMAJxY5tn6VakZGHObq5ig==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@pm2/io": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@pm2/io/-/io-5.0.0.tgz", - "integrity": "sha512-3rToDVJaRoob5Lq8+7Q2TZFruoEkdORxwzFpZaqF4bmH6Bkd7kAbdPrI/z8X6k1Meq5rTtScM7MmDgppH6aLlw==", - "dependencies": { - "@opencensus/core": "0.0.9", - "@opencensus/propagation-b3": "0.0.8", - "async": "~2.6.1", - "debug": "~4.3.1", - "eventemitter2": "^6.3.1", - "require-in-the-middle": "^5.0.0", - "semver": "6.3.0", - "shimmer": "^1.2.0", - "signal-exit": "^3.0.3", - "tslib": "1.9.3" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@pm2/io/node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/@pm2/io/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@pm2/io/node_modules/eventemitter2": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz", - "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==" - }, - "node_modules/@pm2/io/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@pm2/io/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@pm2/js-api": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.6.7.tgz", - "integrity": "sha512-jiJUhbdsK+5C4zhPZNnyA3wRI01dEc6a2GhcQ9qI38DyIk+S+C8iC3fGjcjUbt/viLYKPjlAaE+hcT2/JMQPXw==", - "dependencies": { - "async": "^2.6.3", - "axios": "^0.21.0", - "debug": "~4.3.1", - "eventemitter2": "^6.3.1", - "ws": "^7.0.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@pm2/js-api/node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/@pm2/js-api/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@pm2/js-api/node_modules/eventemitter2": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz", - "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==" - }, - "node_modules/@pm2/js-api/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@pm2/pm2-version-check": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz", - "integrity": "sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==", - "dependencies": { - "debug": "^4.3.1" - } - }, - "node_modules/@pm2/pm2-version-check/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" + "express": "^4.18.1", + "express-handlebars": "^6.0.5", + "mysql2": "^2.3.3", + "sequelize": "^6.19.0" }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "devDependencies": { + "nodemon": "^2.0.16" } }, - "node_modules/@pm2/pm2-version-check/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, "engines": { "node": ">=6" } @@ -259,6 +33,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, "dependencies": { "defer-to-connect": "^1.0.1" }, @@ -266,129 +41,61 @@ "node": ">=6" } }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "engines": { - "node": ">= 6" - } - }, - "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/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/amp": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz", - "integrity": "sha1-at+NWKdPNh6CwfqNOJwHnhOfxH0=" - }, - "node_modules/amp-message": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz", - "integrity": "sha1-p48cmJlQh602GSpBKY5NtJ49/EU=", + "node_modules/@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", "dependencies": { - "amp": "0.3.1" + "@types/ms": "*" } }, - "node_modules/ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dependencies": { - "string-width": "^3.0.0" - } + "node_modules/@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, - "node_modules/ansi-align/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "engines": { - "node": ">=6" - } + "node_modules/@types/node": { + "version": "17.0.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.31.tgz", + "integrity": "sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==" }, - "node_modules/ansi-align/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "node_modules/@types/validator": { + "version": "13.7.2", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.2.tgz", + "integrity": "sha512-KFcchQ3h0OPQgFirBRPZr5F/sVjxZsOrQHedj3zi8AH3Zv/hOLx2OLR4hxR5HcfoU+33n69ZuOfzthKVdMoTiw==" }, - "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "engines": { - "node": ">=4" - } + "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==", + "dev": true }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "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": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, "engines": { - "node": ">=6" + "node": ">= 0.6" } }, - "node_modules/ansi-align/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "engines": { - "node": ">=6" + "string-width": "^4.1.0" } }, "node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "engines": { "node": ">=8" } @@ -397,6 +104,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -411,6 +119,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -419,59 +128,10 @@ "node": ">= 8" } }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/argparse/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ast-types/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" - }, - "node_modules/async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" - }, - "node_modules/async-listener": { - "version": "0.6.10", - "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz", - "integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==", - "dependencies": { - "semver": "^5.3.0", - "shimmer": "^1.1.0" - }, - "engines": { - "node": "<=0.11.8 || >0.11.10" - } - }, - "node_modules/axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", - "dependencies": { - "follow-redirects": "^1.10.0" - } + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "node_modules/balanced-match": { "version": "1.0.2", @@ -482,42 +142,64 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/blessed": { - "version": "0.1.81", - "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz", - "integrity": "sha1-+WLWh+wsNpVwrnGvhDJW5tDKESk=", - "bin": { - "blessed": "bin/tput.js" + "node_modules/body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "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.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/bodec": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bodec/-/bodec-0.1.0.tgz", - "integrity": "sha1-vIUVVUMPI8n3ZQp172TGqUw0GMw=" + "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "node_modules/boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, "dependencies": { "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -527,6 +209,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -536,6 +219,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -543,15 +227,10 @@ "node": ">=8" } }, - "node_modules/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==" - }, "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "engines": { "node": ">= 0.8" } @@ -560,6 +239,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -577,6 +257,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, "dependencies": { "pump": "^3.0.0" }, @@ -591,34 +272,56 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, "engines": { "node": ">=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/sponsors/ljharb" + } + }, "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/chalk/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -627,6 +330,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -634,40 +338,44 @@ "node": ">=8" } }, - "node_modules/charm": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", - "integrity": "sha1-BsIe7RobBq62dVPNxT4jJ0usIpY=" - }, "node_modules/chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "dependencies": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "glob-parent": "~5.1.0", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" }, "engines": { "node": ">= 8.10.0" }, "optionalDependencies": { - "fsevents": "~2.3.1" + "fsevents": "~2.3.2" } }, "node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true }, "node_modules/cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, "engines": { "node": ">=6" }, @@ -675,21 +383,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-tableau": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cli-tableau/-/cli-tableau-2.0.1.tgz", - "integrity": "sha512-he+WTicka9cl0Fg/y+YyxcN6/bfQ/1O3QmgxRXDhABKqLzvoOSM4fMzp39uMyLBulAFuywD2N7UaoQE7WaADxQ==", - "dependencies": { - "chalk": "3.0.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, "dependencies": { "mimic-response": "^1.0.0" } @@ -698,6 +396,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -708,22 +407,20 @@ "node_modules/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==" - }, - "node_modules/commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "node_modules/configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, "dependencies": { "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", @@ -736,58 +433,64 @@ "node": ">=8" } }, - "node_modules/continuation-local-storage": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz", - "integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==", + "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": { - "async-listener": "^0.6.0", - "emitter-listener": "^1.1.1" + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" } }, - "node_modules/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=" + "node_modules/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==", + "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": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, - "node_modules/cron": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz", - "integrity": "sha512-Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==", + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "dependencies": { - "moment-timezone": "^0.5.x" + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" } }, "node_modules/crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/culvert": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz", - "integrity": "sha1-lQL18BVKLVoioCPnn3HMk2+m728=" - }, - "node_modules/data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/dayjs": { - "version": "1.8.36", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz", - "integrity": "sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==" - }, "node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "dependencies": { "ms": "^2.1.1" } @@ -796,6 +499,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, "dependencies": { "mimic-response": "^1.0.0" }, @@ -807,45 +511,47 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, "engines": { "node": ">=4.0.0" } }, - "node_modules/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=" - }, "node_modules/defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true }, - "node_modules/degenerator": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-2.2.0.tgz", - "integrity": "sha512-aiQcQowF01RxFI4ZLFMpzyotbQonhNpBao6dkI8JPk5a+hmSjR5ErHp2CQySmQe8os3VBqLCIh87nDBgZXvsmg==", - "dependencies": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0" - }, + "node_modules/denque": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==", "engines": { - "node": ">= 6" + "node": ">=0.10" } }, "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "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.6" + "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/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, "dependencies": { "is-obj": "^2.0.0" }, @@ -861,138 +567,177 @@ "node": ">=10" } }, + "node_modules/dottie": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz", + "integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg==" + }, "node_modules/duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true }, - "node_modules/emitter-listener": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz", - "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==", - "dependencies": { - "shimmer": "^1.2.0" - } + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "engines": { + "node": ">= 0.8" + } }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, "dependencies": { "once": "^1.4.0" } }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/escape-goat": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.6" } }, - "node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "node_modules/express": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "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.10.3", + "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-handlebars": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/express-handlebars/-/express-handlebars-6.0.5.tgz", + "integrity": "sha512-XEujWSZpsdptky62Qt0Yj8jVGVT6yVXS6fOteL/b8wLdB122ykrxVlcQbNWVxFSEgusju3f6/0uqDC7R9qfwDw==", + "dependencies": { + "glob": "^8.0.1", + "graceful-fs": "^4.2.10", + "handlebars": "^4.7.7" + }, + "engines": { + "node": ">=v12.22.9" + } + }, + "node_modules/express-handlebars/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" + "balanced-match": "^1.0.0" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "node_modules/express-handlebars/node_modules/glob": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.1.tgz", + "integrity": "sha512-cF7FYZZ47YzmCu7dDy50xSRRfO3ErRfrXuLZcNIuyiJEco0XSrGtuilG19L5xp3NcwTx7Gn+X6Tv3fmsUPTbow==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/express-handlebars/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": ">=4.0" + "node": ">=10" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "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/eventemitter2": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", - "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "node_modules/fclone": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz", - "integrity": "sha1-EOhdo4v+p/xZk0HClu4ddyZu5kA=" - }, - "node_modules/file-uri-to-path": { + "node_modules/express/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", - "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==", - "engines": { - "node": ">= 6" - } + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "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==", + "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1000,36 +745,50 @@ "node": ">=8" } }, - "node_modules/follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" + "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" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "engines": { + "node": ">= 0.8" } }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "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": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, + "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "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": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "engines": { - "node": ">=6 <7 || >=8" + "node": ">= 0.6" } }, "node_modules/fs.realpath": { @@ -1041,6 +800,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -1050,104 +810,49 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", - "dependencies": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "engines": { - "node": ">=0.8.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-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", - "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", "dependencies": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" - }, - "engines": { - "node": ">= 6" + "is-property": "^1.0.2" } }, - "node_modules/get-uri/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-uri/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/git-node-fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/git-node-fs/-/git-node-fs-1.0.0.tgz", - "integrity": "sha1-SbIV4kLr5Dqkx1Ybu6SZUhdSCA8=" - }, - "node_modules/git-sha1": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/git-sha1/-/git-sha1-0.1.2.tgz", - "integrity": "sha1-WZrBkrcYdYJeE6RF86bgURjC90U=" - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, "dependencies": { - "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" + "pump": "^3.0.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=6" } }, "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==", + "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -1156,14 +861,15 @@ } }, "node_modules/global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, "dependencies": { - "ini": "1.3.7" + "ini": "2.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1173,6 +879,7 @@ "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, "dependencies": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", @@ -1191,9 +898,29 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } }, "node_modules/has": { "version": "1.0.3", @@ -1210,14 +937,27 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, "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/has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, "engines": { "node": ">=8" } @@ -1225,90 +965,24 @@ "node_modules/http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true }, "node_modules/http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "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": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">= 0.8" } }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -1323,12 +997,14 @@ "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": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true }, "node_modules/import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true, "engines": { "node": ">=4" } @@ -1337,10 +1013,19 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, "engines": { "node": ">=0.8.19" } }, + "node_modules/inflection": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.2.tgz", + "integrity": "sha512-cmZlljCRTBFouT8UzMzrGcVEvkv6D/wBdcdKG7J1QH5cXjtU75Dm+P27v9EKu/Y43UYyCJd1WC4zLebRrC8NBw==", + "engines": [ + "node >= 0.4.0" + ] + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -1356,19 +1041,27 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "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-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==", + "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -1380,6 +1073,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, "dependencies": { "ci-info": "^2.0.0" }, @@ -1387,21 +1081,11 @@ "is-ci": "bin.js" } }, - "node_modules/is-core-module": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", - "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -1410,14 +1094,16 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "engines": { "node": ">=8" } }, "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -1426,32 +1112,38 @@ } }, "node_modules/is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, "dependencies": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "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==", + "dev": true, "engines": { "node": ">=0.12.0" } @@ -1460,6 +1152,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, "engines": { "node": ">=8" } @@ -1468,53 +1161,39 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, "engines": { "node": ">=8" } }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" + }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true }, "node_modules/is-yarn-global": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/js-git": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/js-git/-/js-git-0.7.8.tgz", - "integrity": "sha1-UvplWrYYd9bxB578ZTS1VPMeVEQ=", - "dependencies": { - "bodec": "^0.1.0", - "culvert": "^0.1.2", - "git-sha1": "^0.1.2", - "pako": "^0.2.5" - } + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true }, "node_modules/json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true }, "node_modules/keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, "dependencies": { "json-buffer": "3.0.0" } @@ -1523,6 +1202,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, "dependencies": { "package-json": "^6.3.0" }, @@ -1530,59 +1210,41 @@ "node": ">=8" } }, - "node_modules/lazy": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", - "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=", - "engines": { - "node": ">=0.2.0" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.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/log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", - "engines": { - "node": ">=0.8.6" - } + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" }, "node_modules/lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dependencies": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, "dependencies": { "semver": "^6.0.0" }, @@ -1597,14 +1259,67 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, "bin": { "semver": "bin/semver.js" } }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "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": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "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/mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, "engines": { "node": ">=4" } @@ -1613,6 +1328,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1621,38 +1337,22 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha1-EUyUlnPiqKNenTV4hSeqN7Z52is=" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", "engines": { "node": "*" } }, "node_modules/moment-timezone": { - "version": "0.5.33", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.33.tgz", - "integrity": "sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==", + "version": "0.5.34", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz", + "integrity": "sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==", "dependencies": { "moment": ">= 2.9.0" }, @@ -1665,51 +1365,90 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + "node_modules/mysql2": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz", + "integrity": "sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==", + "dependencies": { + "denque": "^2.0.1", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^4.0.0", + "lru-cache": "^6.0.0", + "named-placeholders": "^1.1.2", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } }, - "node_modules/needle": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", - "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", + "node_modules/mysql2/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, - "bin": { - "needle": "bin/needle" + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz", + "integrity": "sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==", + "dependencies": { + "lru-cache": "^4.1.3" }, "engines": { - "node": ">= 4.4.x" + "node": ">=6.0.0" } }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "node_modules/named-placeholders/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/named-placeholders/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "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.4.0" + "node": ">= 0.6" } }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, "node_modules/nodemon": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz", - "integrity": "sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", + "integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==", + "dev": true, "hasInstallScript": true, "dependencies": { - "chokidar": "^3.2.2", - "debug": "^3.2.6", + "chokidar": "^3.5.2", + "debug": "^3.2.7", "ignore-by-default": "^1.0.1", "minimatch": "^3.0.4", - "pstree.remy": "^1.1.7", + "pstree.remy": "^1.1.8", "semver": "^5.7.1", "supports-color": "^5.5.0", "touch": "^3.1.0", - "undefsafe": "^2.0.3", - "update-notifier": "^4.1.0" + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" }, "bin": { "nodemon": "bin/nodemon.js" @@ -1726,6 +1465,7 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, "dependencies": { "abbrev": "1" }, @@ -1740,35 +1480,47 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/nssocket": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz", - "integrity": "sha1-Wflvb/MhVm8zxw99vu7N/cBxVPo=", + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "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": { - "eventemitter2": "~0.4.14", - "lazy": "~1.0.11" + "ee-first": "1.1.1" }, "engines": { - "node": ">= 0.10.x" + "node": ">= 0.8" } }, - "node_modules/nssocket/node_modules/eventemitter2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=" - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -1777,87 +1529,20 @@ "wrappy": "1" } }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, "engines": { "node": ">=6" } }, - "node_modules/pac-proxy-agent": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-4.1.0.tgz", - "integrity": "sha512-ejNgYm2HTXSIYX9eFlkvqFp8hyJ374uDf0Zq5YUAifiSh1D6fo+iBivQZirGvVv8dCYUsLhmLBRhlAYvBKI5+Q==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^4.1.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pac-proxy-agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/pac-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/pac-resolver": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-4.2.0.tgz", - "integrity": "sha512-rPACZdUyuxT5Io/gFKUeeZFfE5T7ve7cAkE5TUZRRfuKP0u5Hocwe48X7ZEm6mYB+bTB0Qf+xlVlA/RM/i6RCQ==", - "dependencies": { - "degenerator": "^2.2.0", - "ip": "^1.1.5", - "netmask": "^2.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/package-json": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, "dependencies": { "got": "^9.6.0", "registry-auth-token": "^4.0.0", @@ -1872,319 +1557,86 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, "bin": { "semver": "bin/semver.js" } }, - "node_modules/pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + "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-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=", "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==" - }, - "node_modules/picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidusage": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-2.0.21.tgz", - "integrity": "sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==", - "dependencies": { - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pm2": { - "version": "4.5.6", - "resolved": "https://registry.npmjs.org/pm2/-/pm2-4.5.6.tgz", - "integrity": "sha512-4J5q704Xl6VmpmQhXFGMJL4kXyyQw3AZM1FE9vRxhS3LiDI/+WVBtOM6pqJ4g/RKW+AUjEkc23i/DCC4BVenDA==", - "dependencies": { - "@pm2/agent": "~1.0.8", - "@pm2/io": "~5.0.0", - "@pm2/js-api": "~0.6.7", - "@pm2/pm2-version-check": "latest", - "async": "~3.2.0", - "blessed": "0.1.81", - "chalk": "3.0.0", - "chokidar": "^3.5.1", - "cli-tableau": "^2.0.0", - "commander": "2.15.1", - "cron": "1.8.2", - "dayjs": "~1.8.25", - "debug": "^4.3.1", - "enquirer": "2.3.6", - "eventemitter2": "5.0.1", - "fclone": "1.0.11", - "mkdirp": "1.0.4", - "needle": "2.4.0", - "pidusage": "2.0.21", - "pm2-axon": "~4.0.1", - "pm2-axon-rpc": "~0.7.0", - "pm2-deploy": "~1.0.2", - "pm2-multimeter": "^0.1.2", - "promptly": "^2", - "ps-list": "6.3.0", - "semver": "^7.2", - "source-map-support": "0.5.19", - "sprintf-js": "1.1.2", - "vizion": "2.2.1", - "yamljs": "0.3.0" - }, - "bin": { - "pm2": "bin/pm2", - "pm2-dev": "bin/pm2-dev", - "pm2-docker": "bin/pm2-docker", - "pm2-runtime": "bin/pm2-runtime" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/pm2-axon": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.1.tgz", - "integrity": "sha512-kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg==", - "dependencies": { - "amp": "~0.3.1", - "amp-message": "~0.1.1", - "debug": "^4.3.1", - "escape-string-regexp": "^4.0.0" - }, - "engines": { - "node": ">=5" - } - }, - "node_modules/pm2-axon-rpc": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz", - "integrity": "sha512-FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw==", - "dependencies": { - "debug": "^4.3.1" - }, - "engines": { - "node": ">=5" - } - }, - "node_modules/pm2-axon-rpc/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/pm2-axon-rpc/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/pm2-axon/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/pm2-axon/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/pm2-deploy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-1.0.2.tgz", - "integrity": "sha512-YJx6RXKrVrWaphEYf++EdOOx9EH18vM8RSZN/P1Y+NokTKqYAca/ejXwVLyiEpNju4HPZEk3Y2uZouwMqUlcgg==", - "dependencies": { - "run-series": "^1.1.8", - "tv4": "^1.3.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pm2-multimeter": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz", - "integrity": "sha1-Gh5VFT1BoFU0zqI8/oYKuqDrSs4=", - "dependencies": { - "charm": "~0.1.1" - } - }, - "node_modules/pm2/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/pm2/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pm2/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/pm2/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/pm2/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "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": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "node_modules/pg-connection-string": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", + "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true, "engines": { "node": ">=4" } }, - "node_modules/promptly": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz", - "integrity": "sha1-KhP6BjaIoqWYOxYf/wEIoH0m/HQ=", - "dependencies": { - "read": "^1.0.4" - } - }, - "node_modules/proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-4.0.1.tgz", - "integrity": "sha512-ODnQnW2jc/FUVwHHuaZEfN5otg/fMbvMxz9nMSUQfJ9JU7q2SZvSULSsjLloVgJOiv9yhc8GlNMKc4GkFmcVEA==", - "dependencies": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^4.1.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/proxy-agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "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": { - "ms": "2.1.2" + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">= 0.10" } }, - "node_modules/proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/ps-list": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-6.3.0.tgz", - "integrity": "sha512-qau0czUSB0fzSlBOQt0bo+I2v6R+xiQdj78e1BR/Qjfl5OHWJ/urXi8+ilw1eHe+5hSeDI1wrwVTgDp2wst4oA==", - "engines": { - "node": ">=8" - } + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "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==" + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -2194,6 +1646,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, "dependencies": { "escape-goat": "^2.0.0" }, @@ -2201,13 +1654,35 @@ "node": ">=8" } }, + "node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "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.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "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.0", - "http-errors": "1.7.3", + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -2219,6 +1694,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -2229,32 +1705,17 @@ "rc": "cli.js" } }, - "node_modules/read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "dependencies": { - "mute-stream": "~0.0.4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true }, "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -2266,6 +1727,7 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, "dependencies": { "rc": "^1.2.8" }, @@ -2277,6 +1739,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, "dependencies": { "rc": "^1.2.8" }, @@ -2284,75 +1747,19 @@ "node": ">=8" } }, - "node_modules/require-in-the-middle": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.1.0.tgz", - "integrity": "sha512-M2rLKVupQfJ5lf9OvqFGIT+9iVLnTmjgbOmpil12hiSQNn5zJTKGPoIisETNjfK+09vP3rpm1zJajmErpr2sEQ==", - "dependencies": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.12.0" - } - }, - "node_modules/require-in-the-middle/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/require-in-the-middle/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, "dependencies": { "lowercase-keys": "^1.0.0" } }, - "node_modules/run-series": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz", - "integrity": "sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==", - "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/retry-as-promised": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-5.0.0.tgz", + "integrity": "sha512-6S+5LvtTl2ggBumk04hBo/4Uf6fRJUwIgunGZ7CYEBCeufGFW1Pu6ucUf/UskHeWOIsUcLOGLFXPig5tR5V1nA==" }, "node_modules/safe-buffer": { "version": "5.2.1", @@ -2378,15 +1785,11 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, "node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, "bin": { "semver": "bin/semver" } @@ -2395,6 +1798,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, "dependencies": { "semver": "^6.3.0" }, @@ -2406,64 +1810,122 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, "bin": { "semver": "bin/semver.js" } }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "node_modules/shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "node_modules/smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "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": ">= 6.0.0", - "npm": ">= 3.0.0" + "node": ">= 0.8.0" } }, - "node_modules/socks": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", - "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "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": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" + "ms": "2.0.0" } }, - "node_modules/socks-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", - "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4=" + }, + "node_modules/sequelize": { + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.19.0.tgz", + "integrity": "sha512-B3oGIdpYBERDjRDm74h7Ky67f6ZLcmBXOA7HscYObiOSo4pD7VBc9mtm44wNV7unc0uk8I1d30nbZBTQCE377A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/sequelize" + } + ], "dependencies": { - "agent-base": "6", - "debug": "4", - "socks": "^2.3.3" + "@types/debug": "^4.1.7", + "@types/validator": "^13.7.1", + "debug": "^4.3.3", + "dottie": "^2.0.2", + "inflection": "^1.13.2", + "lodash": "^4.17.21", + "moment": "^2.29.1", + "moment-timezone": "^0.5.34", + "pg-connection-string": "^2.5.0", + "retry-as-promised": "^5.0.0", + "semver": "^7.3.5", + "sequelize-pool": "^7.1.0", + "toposort-class": "^1.0.1", + "uuid": "^8.3.2", + "validator": "^13.7.0", + "wkx": "^0.5.0" + }, + "engines": { + "node": ">=10.0.0" }, + "peerDependenciesMeta": { + "ibm_db": { + "optional": true + }, + "mariadb": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-hstore": { + "optional": true + }, + "snowflake-sdk": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "tedious": { + "optional": true + } + } + }, + "node_modules/sequelize-pool": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz", + "integrity": "sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==", "engines": { - "node": ">= 6" + "node": ">= 10.0.0" } }, - "node_modules/socks-proxy-agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/sequelize/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, @@ -2476,11 +1938,71 @@ } } }, - "node_modules/socks-proxy-agent/node_modules/ms": { + "node_modules/sequelize/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/sequelize/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sequelize/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "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/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -2489,52 +2011,43 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "engines": { + "node": ">= 0.6" } }, - "node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - }, "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, - "node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "dependencies": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" @@ -2544,6 +2057,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -2552,6 +2066,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -2559,21 +2074,11 @@ "node": ">=4" } }, - "node_modules/term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, "engines": { "node": ">=6" } @@ -2582,6 +2087,7 @@ "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==", + "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -2590,17 +2096,23 @@ } }, "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "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/toposort-class": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", + "integrity": "sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg=" + }, "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==", + "dev": true, "dependencies": { "nopt": "~1.0.10" }, @@ -2608,71 +2120,62 @@ "nodetouch": "bin/nodetouch.js" } }, - "node_modules/tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" - }, - "node_modules/tv4": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", - "integrity": "sha1-0CDIRvrdUMhVq7JeuuzGj8EPeWM=", + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "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": { - "prelude-ls": "~1.1.2" + "media-typer": "0.3.0", + "mime-types": "~2.1.24" }, "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "engines": { - "node": ">=8" + "node": ">= 0.6" } }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, "dependencies": { "is-typedarray": "^1.0.0" } }, - "node_modules/undefsafe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", - "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", - "dependencies": { - "debug": "^2.2.0" - } - }, - "node_modules/undefsafe/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/uglify-js": { + "version": "3.15.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.4.tgz", + "integrity": "sha512-vMOPGDuvXecPs34V74qDKk4iJ/SN4vL3Ow/23ixafENYvtrNvtbcgUeugTcUGRGsOF/5fU8/NYSL5Hyb3l1OJA==", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" } }, - "node_modules/undefsafe/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true }, "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, "dependencies": { "crypto-random-string": "^2.0.0" }, @@ -2680,14 +2183,6 @@ "node": ">=8" } }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -2697,35 +2192,53 @@ } }, "node_modules/update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, "dependencies": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", + "boxen": "^5.0.0", + "chalk": "^4.1.0", "configstore": "^5.0.1", "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", "semver-diff": "^3.1.1", "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, "dependencies": { "prepend-http": "^2.0.0" }, @@ -2733,40 +2246,35 @@ "node": ">=4" } }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "bin": { - "uuid": "bin/uuid" + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" } }, - "node_modules/vizion": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vizion/-/vizion-2.2.1.tgz", - "integrity": "sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww==", - "dependencies": { - "async": "^2.6.3", - "git-node-fs": "^1.0.0", - "ini": "^1.3.5", - "js-git": "^0.7.8" - }, + "node_modules/validator": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", "engines": { - "node": ">=4.0" + "node": ">= 0.10" } }, - "node_modules/vizion/node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dependencies": { - "lodash": "^4.17.14" + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" } }, "node_modules/widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, "dependencies": { "string-width": "^4.0.0" }, @@ -2774,12 +2282,34 @@ "node": ">=8" } }, - "node_modules/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==", + "node_modules/wkx": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", + "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrappy": { @@ -2791,6 +2321,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -2798,365 +2329,95 @@ "typedarray-to-buffer": "^3.1.5" } }, - "node_modules/ws": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.5.tgz", - "integrity": "sha512-C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", - "engines": { - "node": "*" - } - }, "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/yamljs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", - "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", - "dependencies": { - "argparse": "^1.0.7", - "glob": "^7.0.5" - }, - "bin": { - "json2yaml": "bin/json2yaml", - "yaml2json": "bin/yaml2json" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } }, "dependencies": { - "@opencensus/core": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.9.tgz", - "integrity": "sha512-31Q4VWtbzXpVUd2m9JS6HEaPjlKvNMOiF7lWKNmXF84yUcgfAFL5re7/hjDmdyQbOp32oGc+RFV78jXIldVz6Q==", - "requires": { - "continuation-local-storage": "^3.2.1", - "log-driver": "^1.2.7", - "semver": "^5.5.0", - "shimmer": "^1.2.0", - "uuid": "^3.2.1" - } - }, - "@opencensus/propagation-b3": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@opencensus/propagation-b3/-/propagation-b3-0.0.8.tgz", - "integrity": "sha512-PffXX2AL8Sh0VHQ52jJC4u3T0H6wDK6N/4bg7xh4ngMYOIi13aR1kzVvX1sVDBgfGwDOkMbl4c54Xm3tlPx/+A==", - "requires": { - "@opencensus/core": "^0.0.8", - "uuid": "^3.2.1" - }, - "dependencies": { - "@opencensus/core": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.8.tgz", - "integrity": "sha512-yUFT59SFhGMYQgX0PhoTR0LBff2BEhPrD9io1jWfF/VDbakRfs6Pq60rjv0Z7iaTav5gQlttJCX2+VPxFWCuoQ==", - "requires": { - "continuation-local-storage": "^3.2.1", - "log-driver": "^1.2.7", - "semver": "^5.5.0", - "shimmer": "^1.2.0", - "uuid": "^3.2.1" - } - } - } - }, - "@pm2/agent": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-1.0.8.tgz", - "integrity": "sha512-r8mud8BhBz+a2yjlgtk+PBXUR5EQ9UKSJCs232OxfCmuBr1MZw0Mo+Kfog6WJ8OmVk99r1so9yTUK4IyrgGcMQ==", - "requires": { - "async": "~3.2.0", - "chalk": "~3.0.0", - "dayjs": "~1.8.24", - "debug": "~4.3.1", - "eventemitter2": "~5.0.1", - "fclone": "~1.0.11", - "nssocket": "0.6.0", - "pm2-axon": "~4.0.1", - "pm2-axon-rpc": "~0.7.0", - "proxy-agent": "~4.0.1", - "semver": "~7.2.0", - "ws": "~7.2.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.2.3.tgz", - "integrity": "sha512-utbW9Z7ZxVvwiIWkdOMLOR9G/NFXh2aRucghkVrEMJWuC++r3lCkBC3LwqBinyHzGMAJxY5tn6VakZGHObq5ig==" - } - } - }, - "@pm2/io": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@pm2/io/-/io-5.0.0.tgz", - "integrity": "sha512-3rToDVJaRoob5Lq8+7Q2TZFruoEkdORxwzFpZaqF4bmH6Bkd7kAbdPrI/z8X6k1Meq5rTtScM7MmDgppH6aLlw==", - "requires": { - "@opencensus/core": "0.0.9", - "@opencensus/propagation-b3": "0.0.8", - "async": "~2.6.1", - "debug": "~4.3.1", - "eventemitter2": "^6.3.1", - "require-in-the-middle": "^5.0.0", - "semver": "6.3.0", - "shimmer": "^1.2.0", - "signal-exit": "^3.0.3", - "tslib": "1.9.3" - }, - "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "eventemitter2": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz", - "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@pm2/js-api": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.6.7.tgz", - "integrity": "sha512-jiJUhbdsK+5C4zhPZNnyA3wRI01dEc6a2GhcQ9qI38DyIk+S+C8iC3fGjcjUbt/viLYKPjlAaE+hcT2/JMQPXw==", - "requires": { - "async": "^2.6.3", - "axios": "^0.21.0", - "debug": "~4.3.1", - "eventemitter2": "^6.3.1", - "ws": "^7.0.0" - }, - "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "eventemitter2": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz", - "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@pm2/pm2-version-check": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz", - "integrity": "sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==", - "requires": { - "debug": "^4.3.1" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true }, "@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, "requires": { "defer-to-connect": "^1.0.1" } }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + "@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "requires": { + "@types/ms": "*" + } + }, + "@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" + }, + "@types/node": { + "version": "17.0.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.31.tgz", + "integrity": "sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==" + }, + "@types/validator": { + "version": "13.7.2", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.2.tgz", + "integrity": "sha512-KFcchQ3h0OPQgFirBRPZr5F/sVjxZsOrQHedj3zi8AH3Zv/hOLx2OLR4hxR5HcfoU+33n69ZuOfzthKVdMoTiw==" }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "amp": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz", - "integrity": "sha1-at+NWKdPNh6CwfqNOJwHnhOfxH0=" + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true }, - "amp-message": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz", - "integrity": "sha1-p48cmJlQh602GSpBKY5NtJ49/EU=", + "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": { - "amp": "0.3.1" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" } }, "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } + "string-width": "^4.1.0" } }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" - }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -3165,62 +2426,16 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - }, - "dependencies": { - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - } - } - }, - "ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "requires": { - "tslib": "^2.0.1" - }, - "dependencies": { - "tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" - } - } - }, - "async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" - }, - "async-listener": { - "version": "0.6.10", - "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz", - "integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==", - "requires": { - "semver": "^5.3.0", - "shimmer": "^1.1.0" - } - }, - "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", - "requires": { - "follow-redirects": "^1.10.0" - } + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "balanced-match": { "version": "1.0.2", @@ -3230,37 +2445,64 @@ "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - }, - "blessed": { - "version": "0.1.81", - "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz", - "integrity": "sha1-+WLWh+wsNpVwrnGvhDJW5tDKESk=" + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true }, - "bodec": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bodec/-/bodec-0.1.0.tgz", - "integrity": "sha1-vIUVVUMPI8n3ZQp172TGqUw0GMw=" + "body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "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.10.3", + "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } }, "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, "requires": { "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" } }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3270,24 +2512,21 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { "fill-range": "^7.0.1" } }, - "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==" - }, "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, "cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -3302,6 +2541,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, "requires": { "pump": "^3.0.0" } @@ -3309,19 +2549,31 @@ "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true } } }, + "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" + } + }, "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3330,60 +2582,53 @@ "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, - "charm": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", - "integrity": "sha1-BsIe7RobBq62dVPNxT4jJ0usIpY=" - }, "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", + "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.5.0" + "readdirp": "~3.6.0" } }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true }, "cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, - "cli-tableau": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cli-tableau/-/cli-tableau-2.0.1.tgz", - "integrity": "sha512-he+WTicka9cl0Fg/y+YyxcN6/bfQ/1O3QmgxRXDhABKqLzvoOSM4fMzp39uMyLBulAFuywD2N7UaoQE7WaADxQ==", - "requires": { - "chalk": "3.0.0" - } + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, "requires": { "mimic-response": "^1.0.0" } @@ -3392,6 +2637,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -3399,22 +2645,20 @@ "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==" - }, - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, "requires": { "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", @@ -3424,52 +2668,49 @@ "xdg-basedir": "^4.0.0" } }, - "continuation-local-storage": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz", - "integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==", + "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": { - "async-listener": "^0.6.0", - "emitter-listener": "^1.1.1" + "safe-buffer": "5.2.1" } }, - "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=" + "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==" }, - "cron": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz", - "integrity": "sha512-Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==", + "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": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "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": { - "moment-timezone": "^0.5.x" + "object-assign": "^4", + "vary": "^1" } }, "crypto-random-string": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" - }, - "culvert": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz", - "integrity": "sha1-lQL18BVKLVoioCPnn3HMk2+m728=" - }, - "data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==" - }, - "dayjs": { - "version": "1.8.36", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz", - "integrity": "sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==" + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true }, "debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "requires": { "ms": "^2.1.1" } @@ -3478,6 +2719,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, "requires": { "mimic-response": "^1.0.0" } @@ -3485,37 +2727,35 @@ "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=" + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true }, - "degenerator": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-2.2.0.tgz", - "integrity": "sha512-aiQcQowF01RxFI4ZLFMpzyotbQonhNpBao6dkI8JPk5a+hmSjR5ErHp2CQySmQe8os3VBqLCIh87nDBgZXvsmg==", - "requires": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0" - } + "denque": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==" }, "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "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==" }, "dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, "requires": { "is-obj": "^2.0.0" } @@ -3525,120 +2765,200 @@ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==" }, + "dottie": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz", + "integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg==" + }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true }, - "emitter-listener": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz", - "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==", - "requires": { - "shimmer": "^1.2.0" - } + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, "requires": { "once": "^1.4.0" } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "requires": { - "ansi-colors": "^4.1.1" - } - }, "escape-goat": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "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.10.3", + "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "eventemitter2": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", - "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fclone": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz", - "integrity": "sha1-EOhdo4v+p/xZk0HClu4ddyZu5kA=" - }, - "file-uri-to-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", - "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==" + "express-handlebars": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/express-handlebars/-/express-handlebars-6.0.5.tgz", + "integrity": "sha512-XEujWSZpsdptky62Qt0Yj8jVGVT6yVXS6fOteL/b8wLdB122ykrxVlcQbNWVxFSEgusju3f6/0uqDC7R9qfwDw==", + "requires": { + "glob": "^8.0.1", + "graceful-fs": "^4.2.10", + "handlebars": "^4.7.7" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.1.tgz", + "integrity": "sha512-cF7FYZZ47YzmCu7dDy50xSRRfO3ErRfrXuLZcNIuyiJEco0XSrGtuilG19L5xp3NcwTx7Gn+X6Tv3fmsUPTbow==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } }, "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==", + "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, - "follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==" - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, + "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": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3648,101 +2968,64 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "optional": true }, - "ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", - "requires": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - } - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", "requires": { - "pump": "^3.0.0" + "is-property": "^1.0.2" } }, - "get-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", - "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "requires": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" } }, - "git-node-fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/git-node-fs/-/git-node-fs-1.0.0.tgz", - "integrity": "sha1-SbIV4kLr5Dqkx1Ybu6SZUhdSCA8=" - }, - "git-sha1": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/git-sha1/-/git-sha1-0.1.2.tgz", - "integrity": "sha1-WZrBkrcYdYJeE6RF86bgURjC90U=" - }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, "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" + "pump": "^3.0.0" } }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "requires": { "is-glob": "^4.0.1" } }, "global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, "requires": { - "ini": "1.3.7" + "ini": "2.0.0" } }, "got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, "requires": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", @@ -3758,9 +3041,21 @@ } }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } }, "has": { "version": "1.0.3", @@ -3773,77 +3068,36 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, "has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true }, "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "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": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" } }, "iconv-lite": { @@ -3857,17 +3111,25 @@ "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflection": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.2.tgz", + "integrity": "sha512-cmZlljCRTBFouT8UzMzrGcVEvkv6D/wBdcdKG7J1QH5cXjtU75Dm+P27v9EKu/Y43UYyCJd1WC4zLebRrC8NBw==" }, "inflight": { "version": "1.0.6", @@ -3884,19 +3146,21 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "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-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==", + "dev": true, "requires": { "binary-extensions": "^2.0.0" } @@ -3905,108 +3169,94 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, "requires": { "ci-info": "^2.0.0" } }, - "is-core-module": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", - "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", - "requires": { - "has": "^1.0.3" - } - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" } }, "is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true }, "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true }, "is-yarn-global": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "js-git": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/js-git/-/js-git-0.7.8.tgz", - "integrity": "sha1-UvplWrYYd9bxB578ZTS1VPMeVEQ=", - "requires": { - "bodec": "^0.1.0", - "culvert": "^0.1.2", - "git-sha1": "^0.1.2", - "pako": "^0.2.5" - } + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true }, "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true }, "keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, "requires": { "json-buffer": "3.0.0" } @@ -4015,51 +3265,40 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, "requires": { "package-json": "^6.3.0" } }, - "lazy": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", - "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=" - }, - "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" - } - }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==" + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true }, "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" } }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, "requires": { "semver": "^6.0.0" }, @@ -4067,47 +3306,73 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, + "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=" + }, + "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.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" + } + }, "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha1-EUyUlnPiqKNenTV4hSeqN7Z52is=" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" }, "moment-timezone": { - "version": "0.5.33", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.33.tgz", - "integrity": "sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==", + "version": "0.5.34", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz", + "integrity": "sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==", "requires": { "moment": ">= 2.9.0" } @@ -4117,47 +3382,88 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + "mysql2": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz", + "integrity": "sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==", + "requires": { + "denque": "^2.0.1", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^4.0.0", + "lru-cache": "^6.0.0", + "named-placeholders": "^1.1.2", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } }, - "needle": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", - "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", + "named-placeholders": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz", + "integrity": "sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==", "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "lru-cache": "^4.1.3" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + } } }, - "netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "nodemon": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz", - "integrity": "sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", + "integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==", + "dev": true, "requires": { - "chokidar": "^3.2.2", - "debug": "^3.2.6", + "chokidar": "^3.5.2", + "debug": "^3.2.7", "ignore-by-default": "^1.0.1", "minimatch": "^3.0.4", - "pstree.remy": "^1.1.7", + "pstree.remy": "^1.1.8", "semver": "^5.7.1", "supports-color": "^5.5.0", "touch": "^3.1.0", - "undefsafe": "^2.0.3", - "update-notifier": "^4.1.0" + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" } }, "nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, "requires": { "abbrev": "1" } @@ -4165,27 +3471,31 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true }, - "nssocket": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz", - "integrity": "sha1-Wflvb/MhVm8zxw99vu7N/cBxVPo=", + "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.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" + }, + "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": { - "eventemitter2": "~0.4.14", - "lazy": "~1.0.11" - }, - "dependencies": { - "eventemitter2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=" - } + "ee-first": "1.1.1" } }, "once": { @@ -4196,69 +3506,17 @@ "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" - } - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - }, - "pac-proxy-agent": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-4.1.0.tgz", - "integrity": "sha512-ejNgYm2HTXSIYX9eFlkvqFp8hyJ374uDf0Zq5YUAifiSh1D6fo+iBivQZirGvVv8dCYUsLhmLBRhlAYvBKI5+Q==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^4.1.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "pac-resolver": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-4.2.0.tgz", - "integrity": "sha512-rPACZdUyuxT5Io/gFKUeeZFfE5T7ve7cAkE5TUZRRfuKP0u5Hocwe48X7ZEm6mYB+bTB0Qf+xlVlA/RM/i6RCQ==", - "requires": { - "degenerator": "^2.2.0", - "ip": "^1.1.5", - "netmask": "^2.0.1" - } + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true }, "package-json": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, "requires": { "got": "^9.6.0", "registry-auth-token": "^4.0.0", @@ -4269,244 +3527,68 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, - "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==" - }, - "picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==" - }, - "pidusage": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-2.0.21.tgz", - "integrity": "sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==", - "requires": { - "safe-buffer": "^5.2.1" - } - }, - "pm2": { - "version": "4.5.6", - "resolved": "https://registry.npmjs.org/pm2/-/pm2-4.5.6.tgz", - "integrity": "sha512-4J5q704Xl6VmpmQhXFGMJL4kXyyQw3AZM1FE9vRxhS3LiDI/+WVBtOM6pqJ4g/RKW+AUjEkc23i/DCC4BVenDA==", - "requires": { - "@pm2/agent": "~1.0.8", - "@pm2/io": "~5.0.0", - "@pm2/js-api": "~0.6.7", - "@pm2/pm2-version-check": "latest", - "async": "~3.2.0", - "blessed": "0.1.81", - "chalk": "3.0.0", - "chokidar": "^3.5.1", - "cli-tableau": "^2.0.0", - "commander": "2.15.1", - "cron": "1.8.2", - "dayjs": "~1.8.25", - "debug": "^4.3.1", - "enquirer": "2.3.6", - "eventemitter2": "5.0.1", - "fclone": "1.0.11", - "mkdirp": "1.0.4", - "needle": "2.4.0", - "pidusage": "2.0.21", - "pm2-axon": "~4.0.1", - "pm2-axon-rpc": "~0.7.0", - "pm2-deploy": "~1.0.2", - "pm2-multimeter": "^0.1.2", - "promptly": "^2", - "ps-list": "6.3.0", - "semver": "^7.2", - "source-map-support": "0.5.19", - "sprintf-js": "1.1.2", - "vizion": "2.2.1", - "yamljs": "0.3.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "pm2-axon": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.1.tgz", - "integrity": "sha512-kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg==", - "requires": { - "amp": "~0.3.1", - "amp-message": "~0.1.1", - "debug": "^4.3.1", - "escape-string-regexp": "^4.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "pm2-axon-rpc": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz", - "integrity": "sha512-FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw==", - "requires": { - "debug": "^4.3.1" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "pm2-deploy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-1.0.2.tgz", - "integrity": "sha512-YJx6RXKrVrWaphEYf++EdOOx9EH18vM8RSZN/P1Y+NokTKqYAca/ejXwVLyiEpNju4HPZEk3Y2uZouwMqUlcgg==", - "requires": { - "run-series": "^1.1.8", - "tv4": "^1.3.0" - } + "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=" }, - "pm2-multimeter": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz", - "integrity": "sha1-Gh5VFT1BoFU0zqI8/oYKuqDrSs4=", - "requires": { - "charm": "~0.1.1" - } + "pg-connection-string": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", + "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true }, "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "promptly": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz", - "integrity": "sha1-KhP6BjaIoqWYOxYf/wEIoH0m/HQ=", - "requires": { - "read": "^1.0.4" - } + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true }, - "proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-4.0.1.tgz", - "integrity": "sha512-ODnQnW2jc/FUVwHHuaZEfN5otg/fMbvMxz9nMSUQfJ9JU7q2SZvSULSsjLloVgJOiv9yhc8GlNMKc4GkFmcVEA==", + "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": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^4.1.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" } }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "ps-list": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-6.3.0.tgz", - "integrity": "sha512-qau0czUSB0fzSlBOQt0bo+I2v6R+xiQdj78e1BR/Qjfl5OHWJ/urXi8+ilw1eHe+5hSeDI1wrwVTgDp2wst4oA==" + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "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==" + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -4516,17 +3598,31 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, "requires": { "escape-goat": "^2.0.0" } }, + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "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.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "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.0", - "http-errors": "1.7.3", + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } @@ -4535,36 +3631,27 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" - } - }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "requires": { - "mute-stream": "~0.0.4" - } - }, - "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" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + } } }, "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "requires": { "picomatch": "^2.2.1" } @@ -4573,6 +3660,7 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, "requires": { "rc": "^1.2.8" } @@ -4581,56 +3669,24 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, "requires": { "rc": "^1.2.8" } }, - "require-in-the-middle": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.1.0.tgz", - "integrity": "sha512-M2rLKVupQfJ5lf9OvqFGIT+9iVLnTmjgbOmpil12hiSQNn5zJTKGPoIisETNjfK+09vP3rpm1zJajmErpr2sEQ==", - "requires": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.12.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, "responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, "requires": { "lowercase-keys": "^1.0.0" } }, - "run-series": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz", - "integrity": "sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==" + "retry-as-promised": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-5.0.0.tgz", + "integrity": "sha512-6S+5LvtTl2ggBumk04hBo/4Uf6fRJUwIgunGZ7CYEBCeufGFW1Pu6ucUf/UskHeWOIsUcLOGLFXPig5tR5V1nA==" }, "safe-buffer": { "version": "5.2.1", @@ -4642,20 +3698,17 @@ "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==" - }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true }, "semver-diff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, "requires": { "semver": "^6.3.0" }, @@ -4663,53 +3716,80 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==" - }, - "socks": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", - "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" + "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + } } }, - "socks-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", - "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4=" + }, + "sequelize": { + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.19.0.tgz", + "integrity": "sha512-B3oGIdpYBERDjRDm74h7Ky67f6ZLcmBXOA7HscYObiOSo4pD7VBc9mtm44wNV7unc0uk8I1d30nbZBTQCE377A==", "requires": { - "agent-base": "6", - "debug": "4", - "socks": "^2.3.3" + "@types/debug": "^4.1.7", + "@types/validator": "^13.7.1", + "debug": "^4.3.3", + "dottie": "^2.0.2", + "inflection": "^1.13.2", + "lodash": "^4.17.21", + "moment": "^2.29.1", + "moment-timezone": "^0.5.34", + "pg-connection-string": "^2.5.0", + "retry-as-promised": "^5.0.0", + "semver": "^7.3.5", + "sequelize-pool": "^7.1.0", + "toposort-class": "^1.0.1", + "uuid": "^8.3.2", + "validator": "^13.7.0", + "wkx": "^0.5.0" }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } @@ -4718,238 +3798,282 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" } } }, + "sequelize-pool": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz", + "integrity": "sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==" + }, + "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" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + "sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==" }, "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "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=" + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "requires": { "has-flag": "^3.0.0" } }, - "term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" - }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true }, "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==", + "dev": true, "requires": { "is-number": "^7.0.0" } }, "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "toposort-class": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", + "integrity": "sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg=" }, "touch": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, "requires": { "nopt": "~1.0.10" } }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" - }, - "tv4": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", - "integrity": "sha1-0CDIRvrdUMhVq7JeuuzGj8EPeWM=" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "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": { - "prelude-ls": "~1.1.2" + "media-typer": "0.3.0", + "mime-types": "~2.1.24" } }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" - }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, "requires": { "is-typedarray": "^1.0.0" } }, + "uglify-js": { + "version": "3.15.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.4.tgz", + "integrity": "sha512-vMOPGDuvXecPs34V74qDKk4iJ/SN4vL3Ow/23ixafENYvtrNvtbcgUeugTcUGRGsOF/5fU8/NYSL5Hyb3l1OJA==", + "optional": true + }, "undefsafe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", - "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", - "requires": { - "debug": "^2.2.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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, "requires": { "crypto-random-string": "^2.0.0" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, "requires": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", + "boxen": "^5.0.0", + "chalk": "^4.1.0", "configstore": "^5.0.1", "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", "semver-diff": "^3.1.1", "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } } }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, "requires": { "prepend-http": "^2.0.0" } }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "validator": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" }, - "vizion": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vizion/-/vizion-2.2.1.tgz", - "integrity": "sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww==", - "requires": { - "async": "^2.6.3", - "git-node-fs": "^1.0.0", - "ini": "^1.3.5", - "js-git": "^0.7.8" - }, - "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - } - } + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, "requires": { "string-width": "^4.0.0" } }, - "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==" + "wkx": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", + "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==", + "requires": { + "@types/node": "*" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } }, "wrappy": { "version": "1.0.2", @@ -4960,6 +4084,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, "requires": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -4967,35 +4092,16 @@ "typedarray-to-buffer": "^3.1.5" } }, - "ws": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.5.tgz", - "integrity": "sha512-C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA==", - "requires": {} - }, "xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" - }, - "xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "yamljs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", - "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", - "requires": { - "argparse": "^1.0.7", - "glob": "^7.0.5" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } } diff --git a/package.json b/package.json index 67c898c85..af94cb9de 100755 --- a/package.json +++ b/package.json @@ -1,16 +1,31 @@ { - "name": "nodeinitialdemo", + "name": "nodeinitialdemo_4.2", "version": "1.0.0", - "description": "", + "description": "Main structure of node.js project. Folders / files:", "main": "index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "start": "node app.js", + "dev": "nodemon app.js" }, - "author": "", - "license": "ISC", + "author": "Victor Machado", + "license": "MIT", "dependencies": { + "cors": "^2.8.5", "dotenv": "^9.0.2", - "nodemon": "^2.0.7", - "pm2": "^4.5.6" - } + "express": "^4.18.1", + "express-handlebars": "^6.0.5", + "mysql2": "^2.3.3", + "sequelize": "^6.19.0" + }, + "devDependencies": { + "nodemon": "^2.0.16" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vicmape/itacademy_nodeInitialDemo.git" + }, + "bugs": { + "url": "https://github.com/vicmape/itacademy_nodeInitialDemo/issues" + }, + "homepage": "https://github.com/vicmape/itacademy_nodeInitialDemo#readme" } diff --git a/routes/players.js b/routes/players.js new file mode 100644 index 000000000..e6dda576c --- /dev/null +++ b/routes/players.js @@ -0,0 +1,14 @@ +const express = require('express'); +const router = express.Router(); +const db = require('../config/database'); +const Player = require('../models/Dices'); + +router.get('/', (req, res) => + Player.findAll() + .then (player =>{ + console.log(player); + res.send(200); + }) + .catch(err => console.log(err))); + +module.exports = router; From fe572811a87cfcfeedbff196411a3b8cc5a8c340 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Tue, 10 May 2022 09:56:51 +0200 Subject: [PATCH 03/24] Revert "upd 4.2" This reverts commit 562c2845e22ef400ecacba7788744aba35a50c30. --- app.js | 41 - app/app.js | 0 config/database.js | 3 - ecosystem.config.js | 22 + img/VSC_open.png | Bin 0 -> 32729 bytes img/webstorm_open.png | Bin 0 -> 90164 bytes models/Dices.js | 57 - package-lock.json | 4946 ++++++++++++++++++++++++----------------- package.json | 31 +- routes/players.js | 14 - 10 files changed, 2950 insertions(+), 2164 deletions(-) delete mode 100644 app.js create mode 100755 app/app.js delete mode 100644 config/database.js create mode 100755 ecosystem.config.js create mode 100644 img/VSC_open.png create mode 100644 img/webstorm_open.png delete mode 100644 models/Dices.js delete mode 100644 routes/players.js diff --git a/app.js b/app.js deleted file mode 100644 index 7073c04eb..000000000 --- a/app.js +++ /dev/null @@ -1,41 +0,0 @@ -const express = require('express'); -const { Sequelize } = require('sequelize'); - -// Database -const db = new Sequelize('mysql://test:1234@localhost:3306/dices'); - -db.authenticate() - .then(()=>console.log('Database connected...')) - .catch (err => console.log('Error ' + err)); - - -console.log("database name " + db.getDatabaseName()); - -db.drop().then(res=>console.log("everything deleted")).catch(err=>console.log("error deleting")); - -db.dropAllSchemas().then(res=>console.log("everything deleted")).catch(err=>console.log("error deleting")); - -db.query('show tables').then(function(rows) { - console.log(JSON.stringify(rows)); -}); - -// const Player = db.define('player', { -// player_id: { -// type: Sequelize.INTEGER, -// autoIncrement: true, -// primaryKey: true -// }, -// username: { -// type: Sequelize.STRING, -// defaultValue: null, -// allowNull: true -// } -// }) - - -// Player.findAll() -// .then (player =>{ -// console.log(player); -// res.send(200); -// }) -// .catch(err => console.log(err)); diff --git a/app/app.js b/app/app.js new file mode 100755 index 000000000..e69de29bb diff --git a/config/database.js b/config/database.js deleted file mode 100644 index 6d8a33489..000000000 --- a/config/database.js +++ /dev/null @@ -1,3 +0,0 @@ -const { Sequelize } = require('sequelize'); - -module.exports = new Sequelize('mysql://test:1234@localhost:3306/dices') \ No newline at end of file diff --git a/ecosystem.config.js b/ecosystem.config.js new file mode 100755 index 000000000..2213b9069 --- /dev/null +++ b/ecosystem.config.js @@ -0,0 +1,22 @@ +module.exports = { + apps : [{ + script: 'index.js', + watch: '.' + }, { + script: './service-worker/', + watch: ['./service-worker'] + }], + + deploy : { + production : { + user : 'SSH_USERNAME', + host : 'SSH_HOSTMACHINE', + ref : 'origin/master', + repo : 'GIT_REPOSITORY', + path : 'DESTINATION_PATH', + 'pre-deploy-local': '', + 'post-deploy' : 'npm install && pm2 reload ecosystem.config.js --env production', + 'pre-setup': '' + } + } +}; diff --git a/img/VSC_open.png b/img/VSC_open.png new file mode 100644 index 0000000000000000000000000000000000000000..6a86326220f546d67344dcdb977bf1477effc201 GIT binary patch literal 32729 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%0Ad>z)jn`rp}RJHIe$E`aGFeIk@IWrH>cUb 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%0DIKeuLoemT2eIqe6+-|Xz!sfn*K9l`b(1Zk% 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�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 oh<%cqz-w}=6.0" + } + }, + "node_modules/@opencensus/propagation-b3": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@opencensus/propagation-b3/-/propagation-b3-0.0.8.tgz", + "integrity": "sha512-PffXX2AL8Sh0VHQ52jJC4u3T0H6wDK6N/4bg7xh4ngMYOIi13aR1kzVvX1sVDBgfGwDOkMbl4c54Xm3tlPx/+A==", + "dependencies": { + "@opencensus/core": "^0.0.8", + "uuid": "^3.2.1" }, - "devDependencies": { - "nodemon": "^2.0.16" + "engines": { + "node": ">=6.0" } }, + "node_modules/@opencensus/propagation-b3/node_modules/@opencensus/core": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.8.tgz", + "integrity": "sha512-yUFT59SFhGMYQgX0PhoTR0LBff2BEhPrD9io1jWfF/VDbakRfs6Pq60rjv0Z7iaTav5gQlttJCX2+VPxFWCuoQ==", + "dependencies": { + "continuation-local-storage": "^3.2.1", + "log-driver": "^1.2.7", + "semver": "^5.5.0", + "shimmer": "^1.2.0", + "uuid": "^3.2.1" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@pm2/agent": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-1.0.8.tgz", + "integrity": "sha512-r8mud8BhBz+a2yjlgtk+PBXUR5EQ9UKSJCs232OxfCmuBr1MZw0Mo+Kfog6WJ8OmVk99r1so9yTUK4IyrgGcMQ==", + "dependencies": { + "async": "~3.2.0", + "chalk": "~3.0.0", + "dayjs": "~1.8.24", + "debug": "~4.3.1", + "eventemitter2": "~5.0.1", + "fclone": "~1.0.11", + "nssocket": "0.6.0", + "pm2-axon": "~4.0.1", + "pm2-axon-rpc": "~0.7.0", + "proxy-agent": "~4.0.1", + "semver": "~7.2.0", + "ws": "~7.2.0" + } + }, + "node_modules/@pm2/agent/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@pm2/agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@pm2/agent/node_modules/semver": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.2.3.tgz", + "integrity": "sha512-utbW9Z7ZxVvwiIWkdOMLOR9G/NFXh2aRucghkVrEMJWuC++r3lCkBC3LwqBinyHzGMAJxY5tn6VakZGHObq5ig==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@pm2/io": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@pm2/io/-/io-5.0.0.tgz", + "integrity": "sha512-3rToDVJaRoob5Lq8+7Q2TZFruoEkdORxwzFpZaqF4bmH6Bkd7kAbdPrI/z8X6k1Meq5rTtScM7MmDgppH6aLlw==", + "dependencies": { + "@opencensus/core": "0.0.9", + "@opencensus/propagation-b3": "0.0.8", + "async": "~2.6.1", + "debug": "~4.3.1", + "eventemitter2": "^6.3.1", + "require-in-the-middle": "^5.0.0", + "semver": "6.3.0", + "shimmer": "^1.2.0", + "signal-exit": "^3.0.3", + "tslib": "1.9.3" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@pm2/io/node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/@pm2/io/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@pm2/io/node_modules/eventemitter2": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz", + "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==" + }, + "node_modules/@pm2/io/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@pm2/io/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@pm2/js-api": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.6.7.tgz", + "integrity": "sha512-jiJUhbdsK+5C4zhPZNnyA3wRI01dEc6a2GhcQ9qI38DyIk+S+C8iC3fGjcjUbt/viLYKPjlAaE+hcT2/JMQPXw==", + "dependencies": { + "async": "^2.6.3", + "axios": "^0.21.0", + "debug": "~4.3.1", + "eventemitter2": "^6.3.1", + "ws": "^7.0.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@pm2/js-api/node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/@pm2/js-api/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@pm2/js-api/node_modules/eventemitter2": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz", + "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==" + }, + "node_modules/@pm2/js-api/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@pm2/pm2-version-check": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz", + "integrity": "sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==", + "dependencies": { + "debug": "^4.3.1" + } + }, + "node_modules/@pm2/pm2-version-check/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@pm2/pm2-version-check/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, "engines": { "node": ">=6" } @@ -33,7 +259,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, "dependencies": { "defer-to-connect": "^1.0.1" }, @@ -41,61 +266,129 @@ "node": ">=6" } }, - "node_modules/@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "dependencies": { - "@types/ms": "*" + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "engines": { + "node": ">= 6" } }, - "node_modules/@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - }, - "node_modules/@types/node": { - "version": "17.0.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.31.tgz", - "integrity": "sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==" - }, - "node_modules/@types/validator": { - "version": "13.7.2", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.2.tgz", - "integrity": "sha512-KFcchQ3h0OPQgFirBRPZr5F/sVjxZsOrQHedj3zi8AH3Zv/hOLx2OLR4hxR5HcfoU+33n69ZuOfzthKVdMoTiw==" - }, "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==", - "dev": true + "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==", + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "debug": "4" }, "engines": { - "node": ">= 0.6" + "node": ">= 6.0.0" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/amp": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz", + "integrity": "sha1-at+NWKdPNh6CwfqNOJwHnhOfxH0=" + }, + "node_modules/amp-message": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz", + "integrity": "sha1-p48cmJlQh602GSpBKY5NtJ49/EU=", + "dependencies": { + "amp": "0.3.1" } }, "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "dependencies": { - "string-width": "^4.1.0" + "string-width": "^3.0.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "engines": { + "node": ">=6" } }, "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "engines": { "node": ">=8" } @@ -104,7 +397,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -119,7 +411,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -128,10 +419,59 @@ "node": ">= 8" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/argparse/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ast-types/node_modules/tslib": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" + }, + "node_modules/async": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" + }, + "node_modules/async-listener": { + "version": "0.6.10", + "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz", + "integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==", + "dependencies": { + "semver": "^5.3.0", + "shimmer": "^1.1.0" + }, + "engines": { + "node": "<=0.11.8 || >0.11.10" + } + }, + "node_modules/axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "dependencies": { + "follow-redirects": "^1.10.0" + } }, "node_modules/balanced-match": { "version": "1.0.2", @@ -142,64 +482,42 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, "engines": { "node": ">=8" } }, - "node_modules/body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "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.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "node_modules/blessed": { + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz", + "integrity": "sha1-+WLWh+wsNpVwrnGvhDJW5tDKESk=", + "bin": { + "blessed": "bin/tput.js" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">= 0.8.0" } }, - "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "node_modules/bodec": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bodec/-/bodec-0.1.0.tgz", + "integrity": "sha1-vIUVVUMPI8n3ZQp172TGqUw0GMw=" }, "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", "dependencies": { "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -209,7 +527,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -219,7 +536,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -227,10 +543,15 @@ "node": ">=8" } }, + "node_modules/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==" + }, "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", "engines": { "node": ">= 0.8" } @@ -239,7 +560,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -257,7 +577,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, "dependencies": { "pump": "^3.0.0" }, @@ -272,56 +591,34 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, "engines": { "node": ">=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/sponsors/ljharb" - } - }, "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=8" } }, "node_modules/chalk/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -330,7 +627,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -338,44 +634,40 @@ "node": ">=8" } }, + "node_modules/charm": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", + "integrity": "sha1-BsIe7RobBq62dVPNxT4jJ0usIpY=" + }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", "dependencies": { - "anymatch": "~3.1.2", + "anymatch": "~3.1.1", "braces": "~3.0.2", - "glob-parent": "~5.1.2", + "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "readdirp": "~3.5.0" }, "engines": { "node": ">= 8.10.0" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.1" } }, "node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" }, "node_modules/cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true, "engines": { "node": ">=6" }, @@ -383,11 +675,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cli-tableau": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cli-tableau/-/cli-tableau-2.0.1.tgz", + "integrity": "sha512-he+WTicka9cl0Fg/y+YyxcN6/bfQ/1O3QmgxRXDhABKqLzvoOSM4fMzp39uMyLBulAFuywD2N7UaoQE7WaADxQ==", + "dependencies": { + "chalk": "3.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, "dependencies": { "mimic-response": "^1.0.0" } @@ -396,7 +698,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -407,20 +708,22 @@ "node_modules/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==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "node_modules/configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, "dependencies": { "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", @@ -433,64 +736,58 @@ "node": ">=8" } }, - "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==", + "node_modules/continuation-local-storage": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz", + "integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==", "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/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==", - "engines": { - "node": ">= 0.6" + "async-listener": "^0.6.0", + "emitter-listener": "^1.1.1" } }, - "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": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "node_modules/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=" }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "node_modules/cron": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz", + "integrity": "sha512-Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==", "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" + "moment-timezone": "^0.5.x" } }, "node_modules/crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, "engines": { "node": ">=8" } }, + "node_modules/culvert": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz", + "integrity": "sha1-lQL18BVKLVoioCPnn3HMk2+m728=" + }, + "node_modules/data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/dayjs": { + "version": "1.8.36", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz", + "integrity": "sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==" + }, "node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, "dependencies": { "ms": "^2.1.1" } @@ -499,7 +796,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, "dependencies": { "mimic-response": "^1.0.0" }, @@ -511,47 +807,45 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, "engines": { "node": ">=4.0.0" } }, + "node_modules/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=" + }, "node_modules/defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, - "node_modules/denque": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", - "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==", + "node_modules/degenerator": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-2.2.0.tgz", + "integrity": "sha512-aiQcQowF01RxFI4ZLFMpzyotbQonhNpBao6dkI8JPk5a+hmSjR5ErHp2CQySmQe8os3VBqLCIh87nDBgZXvsmg==", + "dependencies": { + "ast-types": "^0.13.2", + "escodegen": "^1.8.1", + "esprima": "^4.0.0" + }, "engines": { - "node": ">=0.10" + "node": ">= 6" } }, "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==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">= 0.6" } }, "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, "dependencies": { "is-obj": "^2.0.0" }, @@ -567,177 +861,138 @@ "node": ">=10" } }, - "node_modules/dottie": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz", - "integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg==" - }, "node_modules/duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "node_modules/emitter-listener": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz", + "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==", + "dependencies": { + "shimmer": "^1.2.0" + } }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "dependencies": { "once": "^1.4.0" } }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/escape-goat": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true, "engines": { "node": ">=8" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "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.10.3", - "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-handlebars": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/express-handlebars/-/express-handlebars-6.0.5.tgz", - "integrity": "sha512-XEujWSZpsdptky62Qt0Yj8jVGVT6yVXS6fOteL/b8wLdB122ykrxVlcQbNWVxFSEgusju3f6/0uqDC7R9qfwDw==", - "dependencies": { - "glob": "^8.0.1", - "graceful-fs": "^4.2.10", - "handlebars": "^4.7.7" - }, - "engines": { - "node": ">=v12.22.9" - } - }, - "node_modules/express-handlebars/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/express-handlebars/node_modules/glob": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.1.tgz", - "integrity": "sha512-cF7FYZZ47YzmCu7dDy50xSRRfO3ErRfrXuLZcNIuyiJEco0XSrGtuilG19L5xp3NcwTx7Gn+X6Tv3fmsUPTbow==", + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" }, "engines": { - "node": ">=12" + "node": ">=4.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "optionalDependencies": { + "source-map": "~0.6.1" } }, - "node_modules/express-handlebars/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dependencies": { - "brace-expansion": "^2.0.1" + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "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/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/express/node_modules/ms": { + "node_modules/eventemitter2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", + "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "node_modules/fclone": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz", + "integrity": "sha1-EOhdo4v+p/xZk0HClu4ddyZu5kA=" + }, + "node_modules/file-uri-to-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", + "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==", + "engines": { + "node": ">= 6" + } }, "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==", - "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -745,50 +1000,36 @@ "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" - }, + "node_modules/follow-redirects": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "engines": { - "node": ">= 0.8" + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "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==", + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "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": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=6 <7 || >=8" } }, "node_modules/fs.realpath": { @@ -800,7 +1041,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -810,49 +1050,104 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/ftp": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "dependencies": { + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + }, + "engines": { + "node": ">=0.8.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/generate-function": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", - "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dependencies": { - "is-property": "^1.0.2" + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "node_modules/get-uri": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", + "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "@tootallnate/once": "1", + "data-uri-to-buffer": "3", + "debug": "4", + "file-uri-to-path": "2", + "fs-extra": "^8.1.0", + "ftp": "^0.3.10" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 6" } }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, + "node_modules/get-uri/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dependencies": { - "pump": "^3.0.0" + "ms": "2.1.2" }, "engines": { - "node": ">=6" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/get-uri/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/git-node-fs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/git-node-fs/-/git-node-fs-1.0.0.tgz", + "integrity": "sha1-SbIV4kLr5Dqkx1Ybu6SZUhdSCA8=" + }, + "node_modules/git-sha1": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/git-sha1/-/git-sha1-0.1.2.tgz", + "integrity": "sha1-WZrBkrcYdYJeE6RF86bgURjC90U=" + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dependencies": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "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==", - "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -861,15 +1156,14 @@ } }, "node_modules/global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dev": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", "dependencies": { - "ini": "2.0.0" + "ini": "1.3.7" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -879,7 +1173,6 @@ "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, "dependencies": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", @@ -898,29 +1191,9 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, "node_modules/has": { "version": "1.0.3", @@ -937,27 +1210,14 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, "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/has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true, "engines": { "node": ">=8" } @@ -965,24 +1225,90 @@ "node_modules/http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "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==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", "dependencies": { - "depd": "2.0.0", + "depd": "~1.1.2", "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.6" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -997,14 +1323,12 @@ "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": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" }, "node_modules/import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true, "engines": { "node": ">=4" } @@ -1013,19 +1337,10 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, "engines": { "node": ">=0.8.19" } }, - "node_modules/inflection": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.2.tgz", - "integrity": "sha512-cmZlljCRTBFouT8UzMzrGcVEvkv6D/wBdcdKG7J1QH5cXjtU75Dm+P27v9EKu/Y43UYyCJd1WC4zLebRrC8NBw==", - "engines": [ - "node >= 0.4.0" - ] - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -1041,27 +1356,19 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true, - "engines": { - "node": ">=10" - } + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" }, - "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/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "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==", - "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -1073,7 +1380,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, "dependencies": { "ci-info": "^2.0.0" }, @@ -1081,11 +1387,21 @@ "is-ci": "bin.js" } }, + "node_modules/is-core-module": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -1094,16 +1410,14 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } }, "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==", - "dev": true, + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dependencies": { "is-extglob": "^2.1.1" }, @@ -1112,38 +1426,32 @@ } }, "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "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==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -1152,7 +1460,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, "engines": { "node": ">=8" } @@ -1161,39 +1468,53 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, "engines": { "node": ">=8" } }, - "node_modules/is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" - }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "node_modules/is-yarn-global": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "node_modules/js-git": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/js-git/-/js-git-0.7.8.tgz", + "integrity": "sha1-UvplWrYYd9bxB578ZTS1VPMeVEQ=", + "dependencies": { + "bodec": "^0.1.0", + "culvert": "^0.1.2", + "git-sha1": "^0.1.2", + "pako": "^0.2.5" + } }, "node_modules/json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } }, "node_modules/keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, "dependencies": { "json-buffer": "3.0.0" } @@ -1202,7 +1523,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, "dependencies": { "package-json": "^6.3.0" }, @@ -1210,41 +1530,59 @@ "node": ">=8" } }, + "node_modules/lazy": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", + "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=", + "engines": { + "node": ">=0.2.0" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.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/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + "node_modules/log-driver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", + "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", + "engines": { + "node": ">=0.8.6" + } }, "node_modules/lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "yallist": "^3.0.2" } }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, "dependencies": { "semver": "^6.0.0" }, @@ -1259,67 +1597,14 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, "bin": { "semver": "bin/semver.js" } }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "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": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "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/mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, "engines": { "node": ">=4" } @@ -1328,7 +1613,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1337,22 +1621,38 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/module-details-from-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", + "integrity": "sha1-EUyUlnPiqKNenTV4hSeqN7Z52is=" }, "node_modules/moment": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", - "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", "engines": { "node": "*" } }, "node_modules/moment-timezone": { - "version": "0.5.34", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz", - "integrity": "sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==", + "version": "0.5.33", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.33.tgz", + "integrity": "sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==", "dependencies": { "moment": ">= 2.9.0" }, @@ -1365,90 +1665,51 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, - "node_modules/mysql2": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz", - "integrity": "sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==", - "dependencies": { - "denque": "^2.0.1", - "generate-function": "^2.3.1", - "iconv-lite": "^0.6.3", - "long": "^4.0.0", - "lru-cache": "^6.0.0", - "named-placeholders": "^1.1.2", - "seq-queue": "^0.0.5", - "sqlstring": "^2.3.2" - }, - "engines": { - "node": ">= 8.0" - } + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, - "node_modules/mysql2/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/needle": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", + "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/named-placeholders": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz", - "integrity": "sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==", - "dependencies": { - "lru-cache": "^4.1.3" + "bin": { + "needle": "bin/needle" }, "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/named-placeholders/node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "node": ">= 4.4.x" } }, - "node_modules/named-placeholders/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "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==", + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", "engines": { - "node": ">= 0.6" + "node": ">= 0.4.0" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, "node_modules/nodemon": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", - "integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==", - "dev": true, + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz", + "integrity": "sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==", "hasInstallScript": true, "dependencies": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", + "chokidar": "^3.2.2", + "debug": "^3.2.6", "ignore-by-default": "^1.0.1", "minimatch": "^3.0.4", - "pstree.remy": "^1.1.8", + "pstree.remy": "^1.1.7", "semver": "^5.7.1", "supports-color": "^5.5.0", "touch": "^3.1.0", - "undefsafe": "^2.0.5", - "update-notifier": "^5.1.0" + "undefsafe": "^2.0.3", + "update-notifier": "^4.1.0" }, "bin": { "nodemon": "bin/nodemon.js" @@ -1465,7 +1726,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, "dependencies": { "abbrev": "1" }, @@ -1480,47 +1740,35 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "dev": true, + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", "engines": { "node": ">=8" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "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==", + "node_modules/nssocket": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz", + "integrity": "sha1-Wflvb/MhVm8zxw99vu7N/cBxVPo=", "dependencies": { - "ee-first": "1.1.1" + "eventemitter2": "~0.4.14", + "lazy": "~1.0.11" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.10.x" } }, + "node_modules/nssocket/node_modules/eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=" + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -1529,20 +1777,87 @@ "wrappy": "1" } }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, "engines": { "node": ">=6" } }, + "node_modules/pac-proxy-agent": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-4.1.0.tgz", + "integrity": "sha512-ejNgYm2HTXSIYX9eFlkvqFp8hyJ374uDf0Zq5YUAifiSh1D6fo+iBivQZirGvVv8dCYUsLhmLBRhlAYvBKI5+Q==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4", + "get-uri": "3", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "5", + "pac-resolver": "^4.1.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pac-proxy-agent/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/pac-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/pac-resolver": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-4.2.0.tgz", + "integrity": "sha512-rPACZdUyuxT5Io/gFKUeeZFfE5T7ve7cAkE5TUZRRfuKP0u5Hocwe48X7ZEm6mYB+bTB0Qf+xlVlA/RM/i6RCQ==", + "dependencies": { + "degenerator": "^2.2.0", + "ip": "^1.1.5", + "netmask": "^2.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/package-json": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, "dependencies": { "got": "^9.6.0", "registry-auth-token": "^4.0.0", @@ -1557,86 +1872,319 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, "bin": { "semver": "bin/semver.js" - } - }, - "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-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=", + } + }, + "node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + }, + "node_modules/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=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==" + }, + "node_modules/picomatch": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", + "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidusage": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-2.0.21.tgz", + "integrity": "sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==", + "dependencies": { + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pm2": { + "version": "4.5.6", + "resolved": "https://registry.npmjs.org/pm2/-/pm2-4.5.6.tgz", + "integrity": "sha512-4J5q704Xl6VmpmQhXFGMJL4kXyyQw3AZM1FE9vRxhS3LiDI/+WVBtOM6pqJ4g/RKW+AUjEkc23i/DCC4BVenDA==", + "dependencies": { + "@pm2/agent": "~1.0.8", + "@pm2/io": "~5.0.0", + "@pm2/js-api": "~0.6.7", + "@pm2/pm2-version-check": "latest", + "async": "~3.2.0", + "blessed": "0.1.81", + "chalk": "3.0.0", + "chokidar": "^3.5.1", + "cli-tableau": "^2.0.0", + "commander": "2.15.1", + "cron": "1.8.2", + "dayjs": "~1.8.25", + "debug": "^4.3.1", + "enquirer": "2.3.6", + "eventemitter2": "5.0.1", + "fclone": "1.0.11", + "mkdirp": "1.0.4", + "needle": "2.4.0", + "pidusage": "2.0.21", + "pm2-axon": "~4.0.1", + "pm2-axon-rpc": "~0.7.0", + "pm2-deploy": "~1.0.2", + "pm2-multimeter": "^0.1.2", + "promptly": "^2", + "ps-list": "6.3.0", + "semver": "^7.2", + "source-map-support": "0.5.19", + "sprintf-js": "1.1.2", + "vizion": "2.2.1", + "yamljs": "0.3.0" + }, + "bin": { + "pm2": "bin/pm2", + "pm2-dev": "bin/pm2-dev", + "pm2-docker": "bin/pm2-docker", + "pm2-runtime": "bin/pm2-runtime" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/pm2-axon": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.1.tgz", + "integrity": "sha512-kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg==", + "dependencies": { + "amp": "~0.3.1", + "amp-message": "~0.1.1", + "debug": "^4.3.1", + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=5" + } + }, + "node_modules/pm2-axon-rpc": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz", + "integrity": "sha512-FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw==", + "dependencies": { + "debug": "^4.3.1" + }, + "engines": { + "node": ">=5" + } + }, + "node_modules/pm2-axon-rpc/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/pm2-axon-rpc/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/pm2-axon/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/pm2-axon/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/pm2-deploy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-1.0.2.tgz", + "integrity": "sha512-YJx6RXKrVrWaphEYf++EdOOx9EH18vM8RSZN/P1Y+NokTKqYAca/ejXwVLyiEpNju4HPZEk3Y2uZouwMqUlcgg==", + "dependencies": { + "run-series": "^1.1.8", + "tv4": "^1.3.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pm2-multimeter": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz", + "integrity": "sha1-Gh5VFT1BoFU0zqI8/oYKuqDrSs4=", + "dependencies": { + "charm": "~0.1.1" + } + }, + "node_modules/pm2/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/pm2/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pm2/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/pm2/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "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": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/pg-connection-string": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", - "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" + "node_modules/pm2/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node": ">= 0.8.0" } }, "node_modules/prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, "engines": { "node": ">=4" } }, - "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==", + "node_modules/promptly": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz", + "integrity": "sha1-KhP6BjaIoqWYOxYf/wEIoH0m/HQ=", + "dependencies": { + "read": "^1.0.4" + } + }, + "node_modules/proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-4.0.1.tgz", + "integrity": "sha512-ODnQnW2jc/FUVwHHuaZEfN5otg/fMbvMxz9nMSUQfJ9JU7q2SZvSULSsjLloVgJOiv9yhc8GlNMKc4GkFmcVEA==", "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "agent-base": "^6.0.0", + "debug": "4", + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "lru-cache": "^5.1.1", + "pac-proxy-agent": "^4.1.0", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^5.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=6" } }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "node_modules/proxy-agent/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/ps-list": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-6.3.0.tgz", + "integrity": "sha512-qau0czUSB0fzSlBOQt0bo+I2v6R+xiQdj78e1BR/Qjfl5OHWJ/urXi8+ilw1eHe+5hSeDI1wrwVTgDp2wst4oA==", + "engines": { + "node": ">=8" + } }, "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==", - "dev": true + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -1646,7 +2194,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, "dependencies": { "escape-goat": "^2.0.0" }, @@ -1654,35 +2201,13 @@ "node": ">=8" } }, - "node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "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==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", + "bytes": "3.1.0", + "http-errors": "1.7.3", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -1694,7 +2219,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -1705,17 +2229,32 @@ "rc": "cli.js" } }, - "node_modules/rc/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "node_modules/read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } }, "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "dependencies": { "picomatch": "^2.2.1" }, @@ -1727,7 +2266,6 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, "dependencies": { "rc": "^1.2.8" }, @@ -1739,7 +2277,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, "dependencies": { "rc": "^1.2.8" }, @@ -1747,19 +2284,75 @@ "node": ">=8" } }, + "node_modules/require-in-the-middle": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.1.0.tgz", + "integrity": "sha512-M2rLKVupQfJ5lf9OvqFGIT+9iVLnTmjgbOmpil12hiSQNn5zJTKGPoIisETNjfK+09vP3rpm1zJajmErpr2sEQ==", + "dependencies": { + "debug": "^4.1.1", + "module-details-from-path": "^1.0.3", + "resolve": "^1.12.0" + } + }, + "node_modules/require-in-the-middle/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/require-in-the-middle/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, "dependencies": { "lowercase-keys": "^1.0.0" } }, - "node_modules/retry-as-promised": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-5.0.0.tgz", - "integrity": "sha512-6S+5LvtTl2ggBumk04hBo/4Uf6fRJUwIgunGZ7CYEBCeufGFW1Pu6ucUf/UskHeWOIsUcLOGLFXPig5tR5V1nA==" + "node_modules/run-series": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz", + "integrity": "sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==", + "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/safe-buffer": { "version": "5.2.1", @@ -1785,11 +2378,15 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, "node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, "bin": { "semver": "bin/semver" } @@ -1798,7 +2395,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, "dependencies": { "semver": "^6.3.0" }, @@ -1810,122 +2406,64 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, "bin": { "semver": "bin/semver.js" } }, - "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/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, - "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/shimmer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" }, - "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, - "node_modules/seq-queue": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", - "integrity": "sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4=" + "node_modules/smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } }, - "node_modules/sequelize": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.19.0.tgz", - "integrity": "sha512-B3oGIdpYBERDjRDm74h7Ky67f6ZLcmBXOA7HscYObiOSo4pD7VBc9mtm44wNV7unc0uk8I1d30nbZBTQCE377A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/sequelize" - } - ], + "node_modules/socks": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", "dependencies": { - "@types/debug": "^4.1.7", - "@types/validator": "^13.7.1", - "debug": "^4.3.3", - "dottie": "^2.0.2", - "inflection": "^1.13.2", - "lodash": "^4.17.21", - "moment": "^2.29.1", - "moment-timezone": "^0.5.34", - "pg-connection-string": "^2.5.0", - "retry-as-promised": "^5.0.0", - "semver": "^7.3.5", - "sequelize-pool": "^7.1.0", - "toposort-class": "^1.0.1", - "uuid": "^8.3.2", - "validator": "^13.7.0", - "wkx": "^0.5.0" - }, - "engines": { - "node": ">=10.0.0" + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" }, - "peerDependenciesMeta": { - "ibm_db": { - "optional": true - }, - "mariadb": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-hstore": { - "optional": true - }, - "snowflake-sdk": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "tedious": { - "optional": true - } + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" } }, - "node_modules/sequelize-pool": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz", - "integrity": "sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==", + "node_modules/socks-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "dependencies": { + "agent-base": "6", + "debug": "4", + "socks": "^2.3.3" + }, "engines": { - "node": ">= 10.0.0" + "node": ">= 6" } }, - "node_modules/sequelize/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/socks-proxy-agent/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dependencies": { "ms": "2.1.2" }, @@ -1938,71 +2476,11 @@ } } }, - "node_modules/sequelize/node_modules/ms": { + "node_modules/socks-proxy-agent/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/sequelize/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sequelize/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "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/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -2011,43 +2489,52 @@ "node": ">=0.10.0" } }, - "node_modules/sqlstring": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", - "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", - "engines": { - "node": ">= 0.6" + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, + "node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + }, "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "engines": { - "node": ">= 0.8" + "node": ">= 0.6" } }, + "node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "strip-ansi": "^6.0.0" }, "engines": { "node": ">=8" } }, "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dependencies": { - "ansi-regex": "^5.0.1" + "ansi-regex": "^5.0.0" }, "engines": { "node": ">=8" @@ -2057,7 +2544,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -2066,7 +2552,6 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -2074,11 +2559,21 @@ "node": ">=4" } }, + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, "engines": { "node": ">=6" } @@ -2087,7 +2582,6 @@ "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==", - "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -2096,23 +2590,17 @@ } }, "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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", "engines": { "node": ">=0.6" } }, - "node_modules/toposort-class": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", - "integrity": "sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg=" - }, "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==", - "dev": true, "dependencies": { "nopt": "~1.0.10" }, @@ -2120,62 +2608,71 @@ "nodetouch": "bin/nodetouch.js" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, + "node_modules/tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" + }, + "node_modules/tv4": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", + "integrity": "sha1-0CDIRvrdUMhVq7JeuuzGj8EPeWM=", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.8.0" } }, - "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==", + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "prelude-ls": "~1.1.2" }, "engines": { - "node": ">= 0.6" + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "engines": { + "node": ">=8" } }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, "dependencies": { "is-typedarray": "^1.0.0" } }, - "node_modules/uglify-js": { - "version": "3.15.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.4.tgz", - "integrity": "sha512-vMOPGDuvXecPs34V74qDKk4iJ/SN4vL3Ow/23ixafENYvtrNvtbcgUeugTcUGRGsOF/5fU8/NYSL5Hyb3l1OJA==", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" + "node_modules/undefsafe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", + "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", + "dependencies": { + "debug": "^2.2.0" } }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true + "node_modules/undefsafe/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/undefsafe/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, "dependencies": { "crypto-random-string": "^2.0.0" }, @@ -2183,6 +2680,14 @@ "node": ">=8" } }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -2192,53 +2697,35 @@ } }, "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dev": true, + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", "dependencies": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", + "boxen": "^4.2.0", + "chalk": "^3.0.0", "configstore": "^5.0.1", "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", "semver-diff": "^3.1.1", "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/yeoman/update-notifier?sponsor=1" } }, - "node_modules/update-notifier/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, "dependencies": { "prepend-http": "^2.0.0" }, @@ -2246,35 +2733,40 @@ "node": ">=4" } }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "bin": { + "uuid": "bin/uuid" } }, - "node_modules/validator": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", - "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", + "node_modules/vizion": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vizion/-/vizion-2.2.1.tgz", + "integrity": "sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww==", + "dependencies": { + "async": "^2.6.3", + "git-node-fs": "^1.0.0", + "ini": "^1.3.5", + "js-git": "^0.7.8" + }, "engines": { - "node": ">= 0.10" + "node": ">=4.0" } }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" + "node_modules/vizion/node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dependencies": { + "lodash": "^4.17.14" } }, "node_modules/widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, "dependencies": { "string-width": "^4.0.0" }, @@ -2282,34 +2774,12 @@ "node": ">=8" } }, - "node_modules/wkx": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", - "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, + "node_modules/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==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=0.10.0" } }, "node_modules/wrappy": { @@ -2321,7 +2791,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -2329,95 +2798,365 @@ "typedarray-to-buffer": "^3.1.5" } }, + "node_modules/ws": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.5.tgz", + "integrity": "sha512-C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true, "engines": { "node": ">=8" } }, + "node_modules/xregexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", + "engines": { + "node": "*" + } + }, "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yamljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", + "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", + "dependencies": { + "argparse": "^1.0.7", + "glob": "^7.0.5" + }, + "bin": { + "json2yaml": "bin/json2yaml", + "yaml2json": "bin/yaml2json" + } } }, "dependencies": { + "@opencensus/core": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.9.tgz", + "integrity": "sha512-31Q4VWtbzXpVUd2m9JS6HEaPjlKvNMOiF7lWKNmXF84yUcgfAFL5re7/hjDmdyQbOp32oGc+RFV78jXIldVz6Q==", + "requires": { + "continuation-local-storage": "^3.2.1", + "log-driver": "^1.2.7", + "semver": "^5.5.0", + "shimmer": "^1.2.0", + "uuid": "^3.2.1" + } + }, + "@opencensus/propagation-b3": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@opencensus/propagation-b3/-/propagation-b3-0.0.8.tgz", + "integrity": "sha512-PffXX2AL8Sh0VHQ52jJC4u3T0H6wDK6N/4bg7xh4ngMYOIi13aR1kzVvX1sVDBgfGwDOkMbl4c54Xm3tlPx/+A==", + "requires": { + "@opencensus/core": "^0.0.8", + "uuid": "^3.2.1" + }, + "dependencies": { + "@opencensus/core": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.8.tgz", + "integrity": "sha512-yUFT59SFhGMYQgX0PhoTR0LBff2BEhPrD9io1jWfF/VDbakRfs6Pq60rjv0Z7iaTav5gQlttJCX2+VPxFWCuoQ==", + "requires": { + "continuation-local-storage": "^3.2.1", + "log-driver": "^1.2.7", + "semver": "^5.5.0", + "shimmer": "^1.2.0", + "uuid": "^3.2.1" + } + } + } + }, + "@pm2/agent": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-1.0.8.tgz", + "integrity": "sha512-r8mud8BhBz+a2yjlgtk+PBXUR5EQ9UKSJCs232OxfCmuBr1MZw0Mo+Kfog6WJ8OmVk99r1so9yTUK4IyrgGcMQ==", + "requires": { + "async": "~3.2.0", + "chalk": "~3.0.0", + "dayjs": "~1.8.24", + "debug": "~4.3.1", + "eventemitter2": "~5.0.1", + "fclone": "~1.0.11", + "nssocket": "0.6.0", + "pm2-axon": "~4.0.1", + "pm2-axon-rpc": "~0.7.0", + "proxy-agent": "~4.0.1", + "semver": "~7.2.0", + "ws": "~7.2.0" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "semver": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.2.3.tgz", + "integrity": "sha512-utbW9Z7ZxVvwiIWkdOMLOR9G/NFXh2aRucghkVrEMJWuC++r3lCkBC3LwqBinyHzGMAJxY5tn6VakZGHObq5ig==" + } + } + }, + "@pm2/io": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@pm2/io/-/io-5.0.0.tgz", + "integrity": "sha512-3rToDVJaRoob5Lq8+7Q2TZFruoEkdORxwzFpZaqF4bmH6Bkd7kAbdPrI/z8X6k1Meq5rTtScM7MmDgppH6aLlw==", + "requires": { + "@opencensus/core": "0.0.9", + "@opencensus/propagation-b3": "0.0.8", + "async": "~2.6.1", + "debug": "~4.3.1", + "eventemitter2": "^6.3.1", + "require-in-the-middle": "^5.0.0", + "semver": "6.3.0", + "shimmer": "^1.2.0", + "signal-exit": "^3.0.3", + "tslib": "1.9.3" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "eventemitter2": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz", + "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@pm2/js-api": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.6.7.tgz", + "integrity": "sha512-jiJUhbdsK+5C4zhPZNnyA3wRI01dEc6a2GhcQ9qI38DyIk+S+C8iC3fGjcjUbt/viLYKPjlAaE+hcT2/JMQPXw==", + "requires": { + "async": "^2.6.3", + "axios": "^0.21.0", + "debug": "~4.3.1", + "eventemitter2": "^6.3.1", + "ws": "^7.0.0" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "eventemitter2": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz", + "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@pm2/pm2-version-check": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz", + "integrity": "sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==", + "requires": { + "debug": "^4.3.1" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" }, "@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, "requires": { "defer-to-connect": "^1.0.1" } }, - "@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "requires": { - "@types/ms": "*" - } - }, - "@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - }, - "@types/node": { - "version": "17.0.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.31.tgz", - "integrity": "sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==" - }, - "@types/validator": { - "version": "13.7.2", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.2.tgz", - "integrity": "sha512-KFcchQ3h0OPQgFirBRPZr5F/sVjxZsOrQHedj3zi8AH3Zv/hOLx2OLR4hxR5HcfoU+33n69ZuOfzthKVdMoTiw==" + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "amp": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz", + "integrity": "sha1-at+NWKdPNh6CwfqNOJwHnhOfxH0=" }, - "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==", + "amp-message": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz", + "integrity": "sha1-p48cmJlQh602GSpBKY5NtJ49/EU=", "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "amp": "0.3.1" } }, "ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "requires": { - "string-width": "^4.1.0" + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" + }, "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -2426,16 +3165,62 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, "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": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + } + } + }, + "ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "requires": { + "tslib": "^2.0.1" + }, + "dependencies": { + "tslib": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" + } + } + }, + "async": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" + }, + "async-listener": { + "version": "0.6.10", + "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz", + "integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==", + "requires": { + "semver": "^5.3.0", + "shimmer": "^1.1.0" + } + }, + "axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "requires": { + "follow-redirects": "^1.10.0" + } }, "balanced-match": { "version": "1.0.2", @@ -2445,64 +3230,37 @@ "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" }, - "body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "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.10.3", - "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } + "blessed": { + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz", + "integrity": "sha1-+WLWh+wsNpVwrnGvhDJW5tDKESk=" + }, + "bodec": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bodec/-/bodec-0.1.0.tgz", + "integrity": "sha1-vIUVVUMPI8n3ZQp172TGqUw0GMw=" }, "boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", "requires": { "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" } }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2512,21 +3270,24 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } }, + "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==" + }, "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, "cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -2541,7 +3302,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, "requires": { "pump": "^3.0.0" } @@ -2549,31 +3309,19 @@ "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" } } }, - "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" - } - }, "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2582,53 +3330,60 @@ "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, + "charm": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", + "integrity": "sha1-BsIe7RobBq62dVPNxT4jJ0usIpY=" + }, "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", "requires": { - "anymatch": "~3.1.2", + "anymatch": "~3.1.1", "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "readdirp": "~3.5.0" } }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" }, "cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" + }, + "cli-tableau": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cli-tableau/-/cli-tableau-2.0.1.tgz", + "integrity": "sha512-he+WTicka9cl0Fg/y+YyxcN6/bfQ/1O3QmgxRXDhABKqLzvoOSM4fMzp39uMyLBulAFuywD2N7UaoQE7WaADxQ==", + "requires": { + "chalk": "3.0.0" + } }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, "requires": { "mimic-response": "^1.0.0" } @@ -2637,7 +3392,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -2645,20 +3399,22 @@ "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==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, "requires": { "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", @@ -2668,49 +3424,52 @@ "xdg-basedir": "^4.0.0" } }, - "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==", + "continuation-local-storage": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz", + "integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==", "requires": { - "safe-buffer": "5.2.1" - } - }, - "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==" - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + "async-listener": "^0.6.0", + "emitter-listener": "^1.1.1" + } }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "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==", + "cron": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz", + "integrity": "sha512-Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==", "requires": { - "object-assign": "^4", - "vary": "^1" + "moment-timezone": "^0.5.x" } }, "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" + }, + "culvert": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz", + "integrity": "sha1-lQL18BVKLVoioCPnn3HMk2+m728=" + }, + "data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==" + }, + "dayjs": { + "version": "1.8.36", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz", + "integrity": "sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==" }, "debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, "requires": { "ms": "^2.1.1" } @@ -2719,7 +3478,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, "requires": { "mimic-response": "^1.0.0" } @@ -2727,35 +3485,37 @@ "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==", - "dev": true + "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=" }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, - "denque": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", - "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==" + "degenerator": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-2.2.0.tgz", + "integrity": "sha512-aiQcQowF01RxFI4ZLFMpzyotbQonhNpBao6dkI8JPk5a+hmSjR5ErHp2CQySmQe8os3VBqLCIh87nDBgZXvsmg==", + "requires": { + "ast-types": "^0.13.2", + "escodegen": "^1.8.1", + "esprima": "^4.0.0" + } }, "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==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, "requires": { "is-obj": "^2.0.0" } @@ -2765,200 +3525,120 @@ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==" }, - "dottie": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz", - "integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg==" - }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "emitter-listener": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz", + "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==", + "requires": { + "shimmer": "^1.2.0" + } }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "requires": { "once": "^1.4.0" } }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "requires": { + "ansi-colors": "^4.1.1" + } + }, "escape-goat": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "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.10.3", - "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" }, - "express-handlebars": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/express-handlebars/-/express-handlebars-6.0.5.tgz", - "integrity": "sha512-XEujWSZpsdptky62Qt0Yj8jVGVT6yVXS6fOteL/b8wLdB122ykrxVlcQbNWVxFSEgusju3f6/0uqDC7R9qfwDw==", + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", "requires": { - "glob": "^8.0.1", - "graceful-fs": "^4.2.10", - "handlebars": "^4.7.7" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.1.tgz", - "integrity": "sha512-cF7FYZZ47YzmCu7dDy50xSRRfO3ErRfrXuLZcNIuyiJEco0XSrGtuilG19L5xp3NcwTx7Gn+X6Tv3fmsUPTbow==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "requires": { - "brace-expansion": "^2.0.1" - } - } + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" } }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "eventemitter2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", + "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fclone": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz", + "integrity": "sha1-EOhdo4v+p/xZk0HClu4ddyZu5kA=" + }, + "file-uri-to-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", + "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==" + }, "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==", - "dev": true, "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==", + "follow-redirects": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==" + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, - "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": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2968,64 +3648,101 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "optional": true }, + "ftp": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "requires": { + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + } + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "generate-function": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", - "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "requires": { - "is-property": "^1.0.2" + "pump": "^3.0.0" } }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "get-uri": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", + "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "@tootallnate/once": "1", + "data-uri-to-buffer": "3", + "debug": "4", + "file-uri-to-path": "2", + "fs-extra": "^8.1.0", + "ftp": "^0.3.10" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, + "git-node-fs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/git-node-fs/-/git-node-fs-1.0.0.tgz", + "integrity": "sha1-SbIV4kLr5Dqkx1Ybu6SZUhdSCA8=" + }, + "git-sha1": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/git-sha1/-/git-sha1-0.1.2.tgz", + "integrity": "sha1-WZrBkrcYdYJeE6RF86bgURjC90U=" + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "requires": { - "pump": "^3.0.0" + "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" } }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "requires": { "is-glob": "^4.0.1" } }, "global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dev": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", "requires": { - "ini": "2.0.0" + "ini": "1.3.7" } }, "got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, "requires": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", @@ -3041,21 +3758,9 @@ } }, "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, "has": { "version": "1.0.3", @@ -3068,36 +3773,77 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "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==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", "requires": { - "depd": "2.0.0", + "depd": "~1.1.2", "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "requires": { + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } } }, "iconv-lite": { @@ -3111,25 +3857,17 @@ "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "inflection": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.2.tgz", - "integrity": "sha512-cmZlljCRTBFouT8UzMzrGcVEvkv6D/wBdcdKG7J1QH5cXjtU75Dm+P27v9EKu/Y43UYyCJd1WC4zLebRrC8NBw==" + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "inflight": { "version": "1.0.6", @@ -3146,21 +3884,19 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" }, - "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==" + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "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==", - "dev": true, "requires": { "binary-extensions": "^2.0.0" } @@ -3169,94 +3905,108 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, "requires": { "ci-info": "^2.0.0" } }, + "is-core-module": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "requires": { + "has": "^1.0.3" + } + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "requires": { "is-extglob": "^2.1.1" } }, "is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", "requires": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" } }, "is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==" }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" }, "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-yarn-global": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "js-git": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/js-git/-/js-git-0.7.8.tgz", + "integrity": "sha1-UvplWrYYd9bxB578ZTS1VPMeVEQ=", + "requires": { + "bodec": "^0.1.0", + "culvert": "^0.1.2", + "git-sha1": "^0.1.2", + "pako": "^0.2.5" + } }, "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } }, "keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, "requires": { "json-buffer": "3.0.0" } @@ -3265,40 +4015,51 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, "requires": { "package-json": "^6.3.0" } }, + "lazy": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", + "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=" + }, + "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" + } + }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + "log-driver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", + "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==" }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "^4.0.0" + "yallist": "^3.0.2" } }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, "requires": { "semver": "^6.0.0" }, @@ -3306,73 +4067,47 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, - "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=" - }, - "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.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" - } - }, "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "module-details-from-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", + "integrity": "sha1-EUyUlnPiqKNenTV4hSeqN7Z52is=" }, "moment": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", - "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" }, "moment-timezone": { - "version": "0.5.34", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz", - "integrity": "sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==", + "version": "0.5.33", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.33.tgz", + "integrity": "sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==", "requires": { "moment": ">= 2.9.0" } @@ -3382,88 +4117,47 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, - "mysql2": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz", - "integrity": "sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==", - "requires": { - "denque": "^2.0.1", - "generate-function": "^2.3.1", - "iconv-lite": "^0.6.3", - "long": "^4.0.0", - "lru-cache": "^6.0.0", - "named-placeholders": "^1.1.2", - "seq-queue": "^0.0.5", - "sqlstring": "^2.3.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, - "named-placeholders": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz", - "integrity": "sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==", + "needle": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", + "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", "requires": { - "lru-cache": "^4.1.3" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - } + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" }, "nodemon": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", - "integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==", - "dev": true, + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz", + "integrity": "sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==", "requires": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", + "chokidar": "^3.2.2", + "debug": "^3.2.6", "ignore-by-default": "^1.0.1", "minimatch": "^3.0.4", - "pstree.remy": "^1.1.8", + "pstree.remy": "^1.1.7", "semver": "^5.7.1", "supports-color": "^5.5.0", "touch": "^3.1.0", - "undefsafe": "^2.0.5", - "update-notifier": "^5.1.0" + "undefsafe": "^2.0.3", + "update-notifier": "^4.1.0" } }, "nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, "requires": { "abbrev": "1" } @@ -3471,31 +4165,27 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "dev": true - }, - "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.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" }, - "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==", + "nssocket": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz", + "integrity": "sha1-Wflvb/MhVm8zxw99vu7N/cBxVPo=", "requires": { - "ee-first": "1.1.1" + "eventemitter2": "~0.4.14", + "lazy": "~1.0.11" + }, + "dependencies": { + "eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=" + } } }, "once": { @@ -3506,17 +4196,69 @@ "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" + } + }, "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "pac-proxy-agent": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-4.1.0.tgz", + "integrity": "sha512-ejNgYm2HTXSIYX9eFlkvqFp8hyJ374uDf0Zq5YUAifiSh1D6fo+iBivQZirGvVv8dCYUsLhmLBRhlAYvBKI5+Q==", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4", + "get-uri": "3", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "5", + "pac-resolver": "^4.1.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "5" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "pac-resolver": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-4.2.0.tgz", + "integrity": "sha512-rPACZdUyuxT5Io/gFKUeeZFfE5T7ve7cAkE5TUZRRfuKP0u5Hocwe48X7ZEm6mYB+bTB0Qf+xlVlA/RM/i6RCQ==", + "requires": { + "degenerator": "^2.2.0", + "ip": "^1.1.5", + "netmask": "^2.0.1" + } }, "package-json": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, "requires": { "got": "^9.6.0", "registry-auth-token": "^4.0.0", @@ -3527,68 +4269,244 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" }, "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-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=" - }, - "pg-connection-string": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", - "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" + "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==" }, "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", + "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==" + }, + "pidusage": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-2.0.21.tgz", + "integrity": "sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==", + "requires": { + "safe-buffer": "^5.2.1" + } + }, + "pm2": { + "version": "4.5.6", + "resolved": "https://registry.npmjs.org/pm2/-/pm2-4.5.6.tgz", + "integrity": "sha512-4J5q704Xl6VmpmQhXFGMJL4kXyyQw3AZM1FE9vRxhS3LiDI/+WVBtOM6pqJ4g/RKW+AUjEkc23i/DCC4BVenDA==", + "requires": { + "@pm2/agent": "~1.0.8", + "@pm2/io": "~5.0.0", + "@pm2/js-api": "~0.6.7", + "@pm2/pm2-version-check": "latest", + "async": "~3.2.0", + "blessed": "0.1.81", + "chalk": "3.0.0", + "chokidar": "^3.5.1", + "cli-tableau": "^2.0.0", + "commander": "2.15.1", + "cron": "1.8.2", + "dayjs": "~1.8.25", + "debug": "^4.3.1", + "enquirer": "2.3.6", + "eventemitter2": "5.0.1", + "fclone": "1.0.11", + "mkdirp": "1.0.4", + "needle": "2.4.0", + "pidusage": "2.0.21", + "pm2-axon": "~4.0.1", + "pm2-axon-rpc": "~0.7.0", + "pm2-deploy": "~1.0.2", + "pm2-multimeter": "^0.1.2", + "promptly": "^2", + "ps-list": "6.3.0", + "semver": "^7.2", + "source-map-support": "0.5.19", + "sprintf-js": "1.1.2", + "vizion": "2.2.1", + "yamljs": "0.3.0" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "pm2-axon": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.1.tgz", + "integrity": "sha512-kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg==", + "requires": { + "amp": "~0.3.1", + "amp-message": "~0.1.1", + "debug": "^4.3.1", + "escape-string-regexp": "^4.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "pm2-axon-rpc": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz", + "integrity": "sha512-FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw==", + "requires": { + "debug": "^4.3.1" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "pm2-deploy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-1.0.2.tgz", + "integrity": "sha512-YJx6RXKrVrWaphEYf++EdOOx9EH18vM8RSZN/P1Y+NokTKqYAca/ejXwVLyiEpNju4HPZEk3Y2uZouwMqUlcgg==", + "requires": { + "run-series": "^1.1.8", + "tv4": "^1.3.0" + } + }, + "pm2-multimeter": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz", + "integrity": "sha1-Gh5VFT1BoFU0zqI8/oYKuqDrSs4=", + "requires": { + "charm": "~0.1.1" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, - "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==", + "promptly": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz", + "integrity": "sha1-KhP6BjaIoqWYOxYf/wEIoH0m/HQ=", "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "read": "^1.0.4" } }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-4.0.1.tgz", + "integrity": "sha512-ODnQnW2jc/FUVwHHuaZEfN5otg/fMbvMxz9nMSUQfJ9JU7q2SZvSULSsjLloVgJOiv9yhc8GlNMKc4GkFmcVEA==", + "requires": { + "agent-base": "^6.0.0", + "debug": "4", + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "lru-cache": "^5.1.1", + "pac-proxy-agent": "^4.1.0", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^5.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "ps-list": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-6.3.0.tgz", + "integrity": "sha512-qau0czUSB0fzSlBOQt0bo+I2v6R+xiQdj78e1BR/Qjfl5OHWJ/urXi8+ilw1eHe+5hSeDI1wrwVTgDp2wst4oA==" }, "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==", - "dev": true + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -3598,31 +4516,17 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, "requires": { "escape-goat": "^2.0.0" } }, - "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "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==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", + "bytes": "3.1.0", + "http-errors": "1.7.3", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } @@ -3631,27 +4535,36 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - } + } + }, + "read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "requires": { + "mute-stream": "~0.0.4" + } + }, + "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" } }, "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "requires": { "picomatch": "^2.2.1" } @@ -3660,7 +4573,6 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, "requires": { "rc": "^1.2.8" } @@ -3669,24 +4581,56 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, "requires": { "rc": "^1.2.8" } }, + "require-in-the-middle": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.1.0.tgz", + "integrity": "sha512-M2rLKVupQfJ5lf9OvqFGIT+9iVLnTmjgbOmpil12hiSQNn5zJTKGPoIisETNjfK+09vP3rpm1zJajmErpr2sEQ==", + "requires": { + "debug": "^4.1.1", + "module-details-from-path": "^1.0.3", + "resolve": "^1.12.0" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, "responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, "requires": { "lowercase-keys": "^1.0.0" } }, - "retry-as-promised": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-5.0.0.tgz", - "integrity": "sha512-6S+5LvtTl2ggBumk04hBo/4Uf6fRJUwIgunGZ7CYEBCeufGFW1Pu6ucUf/UskHeWOIsUcLOGLFXPig5tR5V1nA==" + "run-series": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz", + "integrity": "sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==" }, "safe-buffer": { "version": "5.2.1", @@ -3698,17 +4642,20 @@ "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==" + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "semver-diff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, "requires": { "semver": "^6.3.0" }, @@ -3716,80 +4663,53 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "shimmer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==" + }, + "socks": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - } + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" } }, - "seq-queue": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", - "integrity": "sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4=" - }, - "sequelize": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.19.0.tgz", - "integrity": "sha512-B3oGIdpYBERDjRDm74h7Ky67f6ZLcmBXOA7HscYObiOSo4pD7VBc9mtm44wNV7unc0uk8I1d30nbZBTQCE377A==", + "socks-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", "requires": { - "@types/debug": "^4.1.7", - "@types/validator": "^13.7.1", - "debug": "^4.3.3", - "dottie": "^2.0.2", - "inflection": "^1.13.2", - "lodash": "^4.17.21", - "moment": "^2.29.1", - "moment-timezone": "^0.5.34", - "pg-connection-string": "^2.5.0", - "retry-as-promised": "^5.0.0", - "semver": "^7.3.5", - "sequelize-pool": "^7.1.0", - "toposort-class": "^1.0.1", - "uuid": "^8.3.2", - "validator": "^13.7.0", - "wkx": "^0.5.0" + "agent-base": "6", + "debug": "4", + "socks": "^2.3.3" }, "dependencies": { "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "requires": { "ms": "2.1.2" } @@ -3798,282 +4718,238 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" } } }, - "sequelize-pool": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz", - "integrity": "sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==" - }, - "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" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, - "sqlstring": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", - "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==" + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" }, "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" }, "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "strip-ansi": "^6.0.0" } }, "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^5.0.1" + "ansi-regex": "^5.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=", - "dev": true + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "requires": { "has-flag": "^3.0.0" } }, + "term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" + }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" }, "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==", - "dev": true, "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==" - }, - "toposort-class": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", - "integrity": "sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, "touch": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, "requires": { "nopt": "~1.0.10" } }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" + }, + "tv4": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", + "integrity": "sha1-0CDIRvrdUMhVq7JeuuzGj8EPeWM=" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "prelude-ls": "~1.1.2" } }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, "requires": { "is-typedarray": "^1.0.0" } }, - "uglify-js": { - "version": "3.15.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.4.tgz", - "integrity": "sha512-vMOPGDuvXecPs34V74qDKk4iJ/SN4vL3Ow/23ixafENYvtrNvtbcgUeugTcUGRGsOF/5fU8/NYSL5Hyb3l1OJA==", - "optional": true - }, "undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", + "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", + "requires": { + "debug": "^2.2.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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, "requires": { "crypto-random-string": "^2.0.0" } }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dev": true, + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", "requires": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", + "boxen": "^4.2.0", + "chalk": "^3.0.0", "configstore": "^5.0.1", "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", "semver-diff": "^3.1.1", "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, "requires": { "prepend-http": "^2.0.0" } }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "validator": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", - "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + "vizion": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vizion/-/vizion-2.2.1.tgz", + "integrity": "sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww==", + "requires": { + "async": "^2.6.3", + "git-node-fs": "^1.0.0", + "ini": "^1.3.5", + "js-git": "^0.7.8" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + } + } }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, "requires": { "string-width": "^4.0.0" } }, - "wkx": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", - "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==", - "requires": { - "@types/node": "*" - } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } + "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", @@ -4084,7 +4960,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, "requires": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -4092,16 +4967,35 @@ "typedarray-to-buffer": "^3.1.5" } }, + "ws": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.5.tgz", + "integrity": "sha512-C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA==", + "requires": {} + }, "xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" + }, + "xregexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" }, "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "yamljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", + "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", + "requires": { + "argparse": "^1.0.7", + "glob": "^7.0.5" + } } } } diff --git a/package.json b/package.json index af94cb9de..67c898c85 100755 --- a/package.json +++ b/package.json @@ -1,31 +1,16 @@ { - "name": "nodeinitialdemo_4.2", + "name": "nodeinitialdemo", "version": "1.0.0", - "description": "Main structure of node.js project. Folders / files:", + "description": "", "main": "index.js", "scripts": { - "start": "node app.js", - "dev": "nodemon app.js" + "test": "echo \"Error: no test specified\" && exit 1" }, - "author": "Victor Machado", - "license": "MIT", + "author": "", + "license": "ISC", "dependencies": { - "cors": "^2.8.5", "dotenv": "^9.0.2", - "express": "^4.18.1", - "express-handlebars": "^6.0.5", - "mysql2": "^2.3.3", - "sequelize": "^6.19.0" - }, - "devDependencies": { - "nodemon": "^2.0.16" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vicmape/itacademy_nodeInitialDemo.git" - }, - "bugs": { - "url": "https://github.com/vicmape/itacademy_nodeInitialDemo/issues" - }, - "homepage": "https://github.com/vicmape/itacademy_nodeInitialDemo#readme" + "nodemon": "^2.0.7", + "pm2": "^4.5.6" + } } diff --git a/routes/players.js b/routes/players.js deleted file mode 100644 index e6dda576c..000000000 --- a/routes/players.js +++ /dev/null @@ -1,14 +0,0 @@ -const express = require('express'); -const router = express.Router(); -const db = require('../config/database'); -const Player = require('../models/Dices'); - -router.get('/', (req, res) => - Player.findAll() - .then (player =>{ - console.log(player); - res.send(200); - }) - .catch(err => console.log(err))); - -module.exports = router; From 77036280692d19c39452a104131f65dddce17a42 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Tue, 10 May 2022 10:05:37 +0200 Subject: [PATCH 04/24] upd --- .env-template | 4 + .gitignore | 3 +- app/app.js => app.js | 0 img/VSC_open.png | Bin 32729 -> 0 bytes img/webstorm_open.png | Bin 90164 -> 0 bytes package-lock.json | 5048 ++++++++++++++++------------------------- package.json | 17 +- 7 files changed, 1973 insertions(+), 3099 deletions(-) create mode 100644 .env-template rename app/app.js => app.js (100%) mode change 100755 => 100644 delete mode 100644 img/VSC_open.png delete mode 100644 img/webstorm_open.png diff --git a/.env-template b/.env-template new file mode 100644 index 000000000..80411cc29 --- /dev/null +++ b/.env-template @@ -0,0 +1,4 @@ +DB_HOST=localhost +DB_PORT=5000 +DB_USER=root +DB_PASS=1234 \ No newline at end of file diff --git a/.gitignore b/.gitignore index 600e365ec..fb664ef68 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -**/node_modules \ No newline at end of file +**/node_modules +.env \ No newline at end of file diff --git a/app/app.js b/app.js old mode 100755 new mode 100644 similarity index 100% rename from app/app.js rename to app.js diff --git a/img/VSC_open.png b/img/VSC_open.png deleted file mode 100644 index 6a86326220f546d67344dcdb977bf1477effc201..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32729 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%0Ad>z)jn`rp}RJHIe$E`aGFeIk@IWrH>cUb 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%0DIKeuLoemT2eIqe6+-|Xz!sfn*K9l`b(1Zk% zn&$KPOhF?X-zpEIwG}55Z}^0msiCg1{>O@k1RE~}>=S=3@$fn8Foj>Q|(s&4Y+No)}B!3es;-&8UefJC4gv6mV^x?5C1p!w$FaMhoRi>c!a2 z5(9@s+d&tPxA^&BR!Skg$JY;7IMi4!a-Ko0S0&D>_HV0x-WZ>w=uIR!Tco^W5g89p z8ikJ&gM49H65A^)3cep6AR>~N4 z=jA-vj3{R1=yi+Iy2H((gd!&SkZZgPIEQ`q47KvUNb!^(Kthre^gf=iK0Px@FcO)k z$7k)twqbqW<;C1Wy}`&CFm%W2vqe zvyHrkHqLzAmp10@fBu{*v_eUKQ#AM9A!IgBpUgd)D+oAp0A}WxylL32sR_Ei@^;qf zO7r4Mgqz$BB@&j5UHNS_1^QkOu)io4bXaMH1g{yywykZ~c4Vw(6rH6d9vZ)eZ=?Z6 zujR=}=jC>`Loc>6%scEh?{bbR&gHdRUV;}uVy@@1-sW!f=$F^~iZqIy?Q>0aM<}-u zK&U=yd)Mr)V&x84Z(g!;yAtE=tn>`^=#M;fJLq&MY65Kd%YNXC>@_YEdyBkvg??4t z;$>&RX7fS+vr)(Aw_awyy!uTrSvP&%H4)mTu3W^+_)&>c_O4Z+G@1e%3dgKW8rAN3z9Q6}_?6k3xL7 zm)i;Lbcj{fuA$>A_q0~fb7|{n^;A~ZK!3P7bTOzJvz=|IhN6=4)$vp4SSe?OZFcAL zM514R_Xt#i3KqOQS<)eZ)Qc5bO8q0WOs{%Z?rP{HMAyh%_i5mkBx6o5z$?~ zHzG{O^X{b53P_dZ(}WrF5o-4txSw-$#(aLa20&jy;>@O|!`tBwUi{4sL%7%DR6;(d z1Pe8t%{?nZPW#tOui)Qffk z+Oh`qtuIEOErg1RUu`Y!Jj{^b?5jY#!f0aK8;?@G)N{ZktiXwFy~yo=(;Azgsr_uK z48XO37d18MkR|!aJ8S&cSgbO0BKFKnlYowCxb5r4XSPq?FziLh*y!5 z8p<`OkDRFrg3k)H6p`(kM{sJB zP>$6-Jpx zePK?T59%c#9f;k9(eqWkyN*}gA0zx=86W8UzFZhnql8VS+c2j&clHL5j2@CCt*D8wgw`_JZIWtFp&Hlk+FZ32Cv5&FGlfHU7PbwN;ss4u&)e>^k9qt3H zz|rnetcJh!TZ@Oc?enWKVULQGhVf$)mHPM4{O?m}7n_1ME;{gH$#N<;=M}=$c^5qn zR|LeE1U=q)DWkKq+Ae6twRKHRbxpOa^}Z<#sq@x}c^phJGhNA=Qog~gZX^wm`p1Iv zfcAS|#t!COmJ@)Ly)o*JQ+CItl4JMf>n_6Yn+Q2Cq-7Ww2Gqq{Y><+~PhkW97aPZv z?1*j*S|roJmXK|D8zD6tJLjB!Pa!iW)Z=K9^SrNOe*EheT|j$XA@Wy-;`Zm?G0_=K zh!wzlUE_B=1f&_Cnhur<9Q5Nu$3Jth$0C*+J{}z1T@PqvR&J*Lcw9Ed2lYCft+o0} z?kW(YqCMf@Lj6ZKYp*uU8nM^jhXA%#4+i**mV-hqKce_7T)2>5O`} zgJo)-?0RFP7Ds6U;cqi|@*6o9g+`;^kmKyP$cEyFu~z7f?Aq{6hOsW>Im*4Gwx zOE&oZUbKGgCm4NWVBY!(F*N};2R1MHhDsUf{sNVLKs1dxJ&b-aD=Itn;Dz_a=Bh_sd$!rZJxWHDpVZDmv%XyjGM!~=v6tD z)?=b;Xsnx>)5e#>{ID;OQC@5t*nVyM@q=CmOUxnE?Gr49CaZ>;PgqQ{Rce*vqB;|` z)&F%lRKwmzqz~6$i2QK5si=p%AhbdCDavfCtSO%XIA#Fgf*mXhT!eSuhvE}D!kRmK zR^z^jG5XtI8)l+cDx71f&Bb=ktXh~v-&kAl09uh+n**R(z;2Ls+)!FXvX%=sDfg6M(AMs`)UB0oS!wZH$JPEN z)Zng&goWU03z%&-kLjF1aD8@88bvJ^=v+XTK6L|D{N4&HtDCme zb&?zA%v|<86HuHT@&V|} zMvU9Z@4mg*3pr1ky3d7dC!tvApKS!PW*#+Hk%(ast5wuYd5!`ZYKf93e3UyUDws;qTBqga!A%#@03$A zS;c7~`6Iy`18U8#>%AE@bpBSDCN>_qm4b{N&UyV8aKfPTlclUsHi?qCuDpW&<HR^FkluJ8w0#5%{I%A6Kw0BA0SFb;9o0W;v(A2+0rr^ffJ3k#(3D${Z~^0? zk^h|ws+ZS)@%B?tUz*FO0GO(OFHv0JZWld0w z!tc|E*{^|T>PCNX4`(OL16GUa%}j*smVSNIhEyK)FiV}EW_A#BC6DngK-SiZR`}+% z=!f0GLC8s{!nr*}Ttrf`MZS#|TX}3Fe9qeC%{htIR(DS0+2?N+FyZ`gb_$6^%e0yu z5$DYcUt~qG5}glbi;&Rn)Z=QUN2ozq{^6>f_f8FB^yH_mv)>skk^`G)rb30;rmu~y z^w|MjM(w2}#F5bDOjkOAYo%^`N}wtZ$C|HpnV8#?YDV05z~~A@>`}(wze)L-JmavL z1-^SVMX5t6BEkzV0(n6<_ilPvoU7l}k4#d3<-1|oFuSlVdA?m}Qj$chwZH;mtOKZ} z0Jtt^x5UCl^fZpL&-N`rz!GohwlcxS3n9BXOu9ej>Y5Ao(heKuh`B*tDqfBaDaFJ( zEETH5DiFTT{V}ZIUcCh&wHMUbNN~vvUa2W@tH_do_POFzXHpjA6I~_h9P}yB%cl>r zb_9S;GT+E7&p#vxQ;MlHX#;Gy3;9vMDF^DUC6#qLzYiINJ^5ufJa_qG^MFq;55gOX*MZA(A56CaB#Ob27#u=smI< zx9LzU*|@Xz>*?_S#{x8)`1y+;#eO|6rdklG0^glO^l+1WGq8JQFN5MHG{Zho;PZ6S z@|2~FRH_Py)3l*Yw=$9I^?>>8Fy=HdHFHJ0-VCG!EZ~QW1*yUKZQg||+fk+2ok^y5 z6g7)`Z#3m!NF?Onq-xtq^hZ(sVHlTk)pko5J)GsRRs+NVjGBY?iZ$juG&gNQ>sLQq zlIbdmG>u~?E%B_c7N?Zd)a(|^oiZA8Ca^-M(&u1332yRixU@+W$sa3!?jM_$#GA80 zjIlqaoo^~IOt7D_nfCT8xq4>q=xAEdJ6+5PT?cUeN8Wdp^?70TDl`N9_6qR5!LG2^ zq{(0}&-0nGmB5_4+g2#L?zR-;aGxF8V$nZN&Ih~Q`7Q-Kot0RANkUwvzfnzhe0=L` zh3jt3UDLdOnrqROfG>6P$!3j5UHANCx`o?Rf_WEj)$ekLPsnFzxcz4Fo@2Th=!l9T;H z_odW=jk_aQS;+fY0FMdp<;Fy;{b>XEqCco)lG#P=QWeE~8wk|8&bK-84f=zU0yAE( zkMA3XH89W0U?Wm!lMLBLo`$8)ddMd{iW?}93y?3WR0EYUGBj1O2~#s!jGVGs6Z1SS zyRM#o%2DJ9y_hLv@6-5V*Sl|UnNlf3Pnw$qz$rz%=o=u_a#dD7uTKppT@TDD>EU|$ zN0hG{a9G91_rpvuSAmW<+L*9;yZ>== zGr``-X_+q0>32S2|NQn|WxVKx{ao0PWV<&&d36l-L__;7XIs6^%ifuIZv$7c8z^Mo zNJ~Wjjd3a@V|F_kpT(ouL%QO}WB}TIgQ7}XhLUWq+5xs{W=qL6y9V?n!c_JqM`@h>nrr8^HZ)cWMErtVgs#{0YTX- zwZeBD23s6C;(JUCF;0JQ;Mk1lzguSByt7mweD2%Jgbq|RN~1uu(dRdJP3Or3j5g9i zYOM^zIp0u|dwiVT2)I4VTjP`y#D}PTaByuuv4ILp8tfS}aTeUX@e zor2hvy8#$29c)oew-eoWQb3!PZ8G_GCtVREV!783hYG&Qy1ucT^K>57uGlRGdh5ZYRm(V2CJV5vqdr51Ud0gqCT5Bit{MC-O4#p^!Gn@3Jc1)+g} zHzr`Gfn+^E#~n1ImGM`im+l5Az$i&&ADd3`w-vD zk&czum=@-ku=W1C%hI`;fIAHGY#J^W&b3r`p)@N%i1r%0B_1+v5 zMCNqnk9Fm!4LOPKqbXOePoV@*Z%1=yp!Ux5F1Be=^=XR-Glz5U0GO znIkH64qZ<;gXJ{AwjbVSUQQ())b7Ygt`@Eie+l3%h3--FI=kI*A0ZZgD(?VKc7Hm{ z9-(^@i%=>Dsunx3GJ$EOq%pi4`ZFHA2VCr~D(YcMsFoa0%~kPpVUE={Aq zAfYQgL`g}lq#OqaX;ja=rx;5EOK6kgWD*%Ry4XBo$=_CojL8;FH^=qB(5ndr1Cg0_ z+VLa<(bPvCA%WY%TvcW{dGMS0qEL5l#0s`3!OHy*7N;`SMX=oo8lE9WKqWB0N1{u& z;+?Ce!~_}*`x9Tm(qUJ==p#c(nMI@`+$S&hP2q$hj&qBgT;{iw*4FpJUZosc?Zmdr zRA%StRx<^)Xh9Jk5#>o@PVz1Cah9dD_hoRXkdf!+Ps#KYfI=BT!NL=>)V3NqC8ow9 zyBBLkEm|5Wg0O985u-ToTxn3*O-fve{~LQJ1aTiT%YeIcZQzGKgOT-z$U%*0+2Vh2 zvClUat+$&qEK)RAe{PpuZg=BOMgT7pyoSZAEw1Y^2+e~Ly$d+TP-s^f_k$}K~EJ7m95^%K% zN1^zi`S!2efauWnXji-WgWr4Z=(p1bJ2PA*BTNM@t>}=)uj$ZrALf9xS7TK@7+(I) zCNDDLILYJfK*E54_XA$nK)N90Tt)hIjXTuyNX%z?OzK%>vv#rEkdUp>41gF=NK>r6 zg?rhE&Y`;=FmtD~Eg3%?6opxtp4^r%NR7A#(f(*X>(Hu!DXXW>8I7MeGnDgB2AKzF2Ia`bB zN&a5ji*oE(j018@!56fulcQeNd_6A3HOvjej7ia5ZzBP{pk0ykavsY8_2*J`nvu=MU6#B!OI<*rawQqZg*s_ws)BK)OFQS{n~OO2K>^epv)p;2=wToq?3OexJ9pCta)@CS$dlP z^-c^_38=SNh?j?r=12j}%$f8~Cbe+eeyx@=YY&wT2|Pv2-)`xj5wdD1sYY5dut{jW z*oqBpABZ7$U`UGB@6-257gRNn)7B5jZ{>2-yfmC%S$REEiDH72kPQvpuK;J>T$t!c zX4KnmZA;)538Gv6i7d#BNgclg-%S6MtGjG>g%$9{WS+7&Zbqh{Tgu|se~6z?3#fnN zKC%!Ez)UK0a2@9$fjQa8HOC1t zH|KwTQt*-bVa}s%6j}Hd+E)BLt+hChSQ!wlb7C?lS`#qY^Ivuphhy_OX6KCFf{7{za%nM-e z2$NHS8p|CQew>b>IPfD56CU6YyK0%X5^;@A#c=iLlj@K@DC4-yTxiM zt59PDv$a*&uu#cyVqtIV&0)Cu_@SunA<_~h7;DAQ_Icwbuyd)tE?+w=>~P8wH?)VG zED4_&4J%ArR;LN`-(#^NgW>n4 zy2x%`O>SrfwY@H4Q3(kX&T}nby`MLK1PTBFu<)vM)e@)<|v(9C8EyPY-{Q=d<8_V>sY;^RM=V9jru@>{;`1%p@8LEZ}k z+!7ZZlM?BDJmG->sLZ(_FTGf_cSl>nI)mg!l0`xZZ#}7T`jJMDs)Foay56XcWUI8A ztw4k=dh5HI@{t13U8LnsW9q_PxphM(9c~$PWViM{KlpoxaoFzL$y`nkb&`&$bPG)+ zX@Pg_6e+4muHs$v=2{f#m__y;E%;lQb`_~n;*Od=Jr9eAY1wkFoRDzoOGmCqnAXZo zaiIz44F;P`Dor+bfp_eVaLj{iC$gLM#YE&PIKH|tEKnFzweX8&Llg-mh(pXzPc29w zLE$`O&!d_9&AZIs=9dQ35RoOVe6%^byW?r=`PH_HtwVS%PPdSim4XB}E~ z2^af?Dw86ls9)^<%1f~?zXb;21UE%yiwX>nd@&Hw&um(&$y!J<{d^X=OH8{9U4bl* zEhyK_#n+nvmpp z{r8`*`ORoi>s5O9vllaw%NrA#v{#-zV?n+Pdpf=(IAX0I7K6!~!pXQLofxFm8izBS zUWmKy2k$hwR4lbPn=CAYsP0LtnIPv}wMZrHQ~;baYMGMfY3c_Pca0VkiYGltocC=m zW5s_dERizzy`)|Y&~H9On~xl}6U^Yn23k#mxceI&y2btsM>X&<5bYernZbd?^F=^M z0Nne){+{YabF%T;ucLfS0fzo~F|~;){^ozZ z()jZGSqge;wX*{XS>EY&w>e`xo-zHcv+8!43vpOYAL2FMo4>|wVENgD&F*g-RCq9T z<9{1on9hQuQjnhx*DK}Zhj4@&Tjop|Nfx@_in~z>`rH2jt^ ze7g&}RKwqGJ{WtxbAamI&Ls8BVx4wb;lL|W3AgW29A-b#ot1u+msk$bLBai#-s+K$ z4sR5ErQRtA89wvOt5Vgb-08t^$uwO@;+AthxT=33NF5?{yViMek+Q7)aAH&18C#tf zC)?a?z3R?eD8;d2L5@rJZON13nxC2Msh#nABTOYK#oqbk4yx|X0uPsSYe4IHAj^#v z%^jK@XSE;>JkVkhADc zBzpHJtDSvriMuNW4x_oLVQ&{Q{rS*W19Eabw^x3InxSBWz5QaA_d`#(HY3gcg17&u z%kQ>$C>b$ep$u7knKjtOMGu%an|lP{ZSj_c{MAm#xQHltgF{38qXEGB>bL53Z{uY{wgmmx}P)YG~K zfIS_Yg~RNlK)+oj4No|F45~t#2483}^E9LWy6wkg_fF%RwK~4Z)!Io zJ|({3t-}dpk7uBTyMi!NCh2M-4sPy)2Y-EK{EIyJ30W|S%wwXz65Vl}sqV*UuO<>b zS>k1;-bv0g;QY<-u^i?hr=gwnuzR+~WH`X{r2%)go=c;#1ENlq8U0@H0o@N9_aw%d z82g9Zn=)X2VN)5)|TPFq$Yg6sTR>CO-F z+|TjldeFm%+kvKb2m(7B{uj%4)?93kpG!{h!4l%E%%Y;Lm_c8$7j`zL3Fm4CgawoJ z6C)_KDnAc3Tt$5#`t&|Tq1S_u@Z1Rj$+L{zrGL#b?sqs=Ge<2B2q`$of4TVc-Xu@p zYbwhO5W>9OqwmXf0j_*sBePD`knVfkfLF-f^&$>I7g$w52lnnbh=U*t&up^h(=sLJ zt2`dR=bM204Q3yL`R)--6xooOcGf=NXh{T&eDVA4accKNMn11YQ|w7sMV;nO(@_QG z@##8=n1r|QLK=jUDtMOr&l>S+nRjpvMX-TYv5o#>i&^{UQ;)~@*D0RwE*PdR_FB4z z_}4rJ4>r=SftES=5ecnAvYpa@_I(}ct-r^w`IF|!!_XH*+=;FNMs^)qSY(PntDD;a^jhvhr zM@FK3>E%inmdRx{x$Eoe;23}TdWiGgZOf*^gtNBfI_Oaz#V}cs z>MviC`{7@DA8&lW_f|%jKGU5!g1KMrS$vV2{(7eCPhlIJs`Hn&PHa!b9!g9NBIMt1 z%?Da%eCTy;-gv6(>Q+plkP{roa>X|D!6olT^<`@(@tTK5hc2%BFeL#lv+Nh!QOams z=5HcudO_(=8EOVgoyWB*UMpZP&&KgVuJm>gM2`&PgWjMvc562VVr>pFo?D#{@v2B; znVmZZrH>=&7TRWB7#yFT(>ig#@rUkY=iDJS9t?;`yIhW~5Xyw`b@MSB~7R^n!`;`F<1nIQXYpZ?kOHC4%}N-H)r&ubOv> zAFl+YFq5R@B`Eqf%6Caez5AU_*5&beE(nD%>1&X+V}2&HlWq3We`BGSMqWH1@ce=F zsFJ$STFdV0V}F#Htl8sVsvIjQaU^ff%4s(NT|iS!I;m`T!KDWX`ex+FyJaDyK#^NX zdb!P$kfi#GEw~auDq|xhStfyN-m>w{AZWzN!p~iT`m41+lbv$9WWDvp^j{ptAVdX+GB=}10j6kshKFwr`gY#2v&rhmG?&_ukCJk9z0?pq4$(*RlE>Q3w!ZAFF z=_NxE4EQRqFJ^5w%ZP%HYVHWmnNl=Zn5`nDB|@Y3VaD9#0*aDtf$I=3H5)F7%aS(z zazPX5INxeHFiQYLU-Ss&bY4#NKtknxuA`p|<*smq*uhWz`tQkZp_Dk<{dNEVh1XPW>+v$_4 zG6Xxpem9V&*|<;am<@`h1d2*n?c8js&e5igPsAW>KoOCdcf)!@9< z8aObKGW`~3Ra;&DBxJO}A4DTw(px{x_v_osd!=J59o8eib#_i8M^qxYwzHL?pp(m_ zAsNMLPyveD7aVD=c4*SPvsd{Xv&`{Csnp2nu>8+Hz? zuE}b0K<0?ml?w~V^(uJV4$r|GXl@7&cNKyStl?K1vAy3)#wnANQ&Ki}sG%U|t(%?@ zl1aP^x}{~G7C?@==--=adIV;m8ElZXR4;L7k@TR;et38cY+$&OZ3V7eYCe;`*;`WW z+nT{DMNjN(Ab5gsVe_GP$B*#O@~<4R^;7>=M|sS|qLRngVg>DCiO4(BiK-#cWwsI2 z=2JT%u6YNt!bO{gmYny~`ZQXUffn}biY6}%iVf?kk1Sn_X<@1Tj_5Sb_4BK*yl7eDjK6HTBmdSAn=l;!5OzNA>= zEnas?i)OgycaJObq>ZE;@!aEiN+t4Vk3IXZ!6zr#r>8o1rjL|bROwnQ(b?<8nF9u{ zkBkv)5Yrk)PEEb}pc-+Cb@f?_ElKXrx*pS?T8#{Px5p(y_L*gr zmQ%}8;8!-))=a}86qp$l@cNb6a{ZrA^*)*@m3n5|C|i}yibhkD-{(p3otYwf#t)UN zK4_4~V-0@Jo?_9m9kwKU`{#2IYrm_-&H}}&pcA;r-ffK2K<~VHljdmz+yRv2PM_;g zGQ2Sm;XYR*d5oC<(v(#4#>K%R{ZX&5$N8(2S&_(vG(@()zasJ615K1YvfGZ{D+O5?AozZn;=NU@k%aTsx%ab5268KL?rR1Z1kl zN3#j&`U-@-TXqvFB2SCZfI|c90n0T{szOuZ$P)z{zkTm-LkwQ+6DZqVH};hz2xVyq z5-xLsBk=D9X_+mVe0u+I{czt@N6W_^xL$U*4|hfI`<$;5l`vP2G6n3WzStMoXZinF zfToXgdsFGRq$t6h`4Y)@PxJ08JVUI#qgkYhp^Icbk}&%W-tAh-vZ+wfbOQL=m%Iw@ zg(7nVTVnCn`gYD#M$RH*&BfiPFA7}=Xo==ZB&^H+*%$QF=bBHu5vbb^DGOTT1mxWY z_tkubhGz`$FmDAmp<1Tyi|I7@QR&Y;9{2mqcCfJQ4lrN)+7lj&VL2?z`$AfLZV)K0 z*xo<-e6Q1OAuS0OK-5%2k*T2e;sB!1LqjrQLYGR_d|FYD3%otZtH}=vEX~*_5SoD9 zo+bdYlEX}v5@Mg)w!_Rxy~zmDdHt_OphAf`sFM~0>t|QOd1jXNq~F@UNPqFzRx%dx z@N)5x#d^h2c+ZwncPc(^iowL=`O)>3dTewW)Osg<>)tkALWXc*HXy8fz#4M~dh^&6 z1wQY|_yz~kn$VNpagAFCv;;Sj`O>AK9|;Q%wo03rgrtc-70kIXED&p;hmf1P#)=A_s-^V=z582qO39z7V-vC&3WYT zaJ1&ZCz1Yp1KwWG0=?Wn8lB>8SZa1$FNDU%KCOkSnenED>8sw$Wro)QLWiTz%Fj?{ao9P)6s zrqkFU&AwWgsqlnxwvI>-)W@ERUC-{= zfpO%>`>2MA8wkVJNi8r8xcu07xOi- z!wdP&zk^EE%kjD`nKb2HL1@!dSohSPRM4`?P&nj|4Xl&1Fz+L2qn||3Ma<6#y}oi#+iJn=J#y$Je3<9`vGLj8Jf+|7o6{zUR$Frbw|X1*f_ELANLH@=ezf_i8{ zQ8|FlX;}1e1Q_Ff(Dj%*5RCNs$cgu1M!torO+V=3_71_Ux7eQWERA140dGbb6Xfqs z4*z_R_yx)SB5Ws>sz9RDXT6PEP&YWJtI!qgbjg+l9Tbvml~8&$b*&dm5Yusx#biR5 zGd?cq`k@EJtwAk(0xX;9hq7ZadoXi!21vTa1uL&qps!@q=z(y{tlG24M zxQ2)38`l$n<9^2(q@Dw^PzT#e7F@5B6rkkoOeg*fb#MM?eV-5@iTy;)2iQl+C%XTb z;|_Humfza9a?;JBI_m`W-aY;;5ne$7mhyJfoqMOrC7~xPej{}TjWEc6$qrvD){z=N zg1BsFNL9iTyqM3f&;s~7F)wa*%kfP~{pMKC*3D{8*@7K&=!pr@=R0_yhX;?irRuIu z@`%lTjQVZgxun!A)IpAJms{BYvo1IEw%C;-upWl)>a?4QcXH0Jt3i^Nqy-Re9pCk|K@^JB*fgrXk82vijO_+CN( zGYwYFW8+iRpxH$MMf2D_2jp$VVu!CLIm->Y;78*usob!59NRsj*yCfbD|Pzs>C$DI zMTuU|2%XXZe4+)w9ZBqk7oCOu&!^o#yw}9rp7!;Oh(VA!`O9t=q8JV^1e20}H+PfI z+FLx3i2vj2Dxjk5p8k@82+}2jAR*n7(jg5SARS6AA}u8)7?eSGFYGR{2rP}Dbgj}# zOS1?|NY}UT_x*kK|2-T%a*p?T?#!K;J9B65{O-23PK9?}u(|p|)b3AbU0KYiFU@Mc zebTM{tM$xQjY{e2SLVoI%Bx#rqpepfRvyUK9}4-fMxIh#-*Us%?2yH+(J@CD0so^v zP$#KJ7-!t&hrly);+APTg_$KJr8vZVhlH6eomEd!FO*IoXLCzFq!YWGSW`> z%TzEsz;b{>!GF|~n(#?BbVfTNATC3xYq8GuDhsvsK+#Twd%CFcrK@fE#emc?!m)(n z`q}ny8HWw9Rq}fF*;W;fV*`6%+?>uoNpGOPKeR8``|xwpaGWDb-}c~YJ|PLOI2Axc zS@B>jSm8>#f81%*#4Ia%=fggekw~CR8|v-4pK<>Q#%ShTtf*)-?*qytncR>N*3E6x`U$Y4d%@9;3rc`ol zygG3vs1y5f+AmE)VaqntEY;^$V`%l0)`6{Co3EOyg8YA7`Eu{_$8NhOL@qcrq|yI- z$z7lI=JPjBy0;q>9B37#8rw6@SG^BVCr+0F3WB32lz|I-nmB#(W`e%yiafoF##@kv zyov{qFW>JwA|Zipcvmq_9FxYa6aP3OVYlznV|`|Hrs2COgR|n9c87viJ~Cl_PgDJ4 zui`bR>iK7oW6dbx9*JKkGQaInPx-z8LpDoW6H|t$lGL@EH#gM6&2W0t4{x$hT(mr0 zB++W2>*|tipvsp0ocKH-Xb@XiF!(H5A%fSm>Be11*b`rB!H^A$cSEDihoBL0kR z>8q>J+3MS0!&)aEnY*CW*3+*=`R9$K$0wvuW7y<3qYuNBfetNErl>0bn}A#mQ(rry4|miH9b-*PWb0;e-K8Rs@AXjpOj>$s`=7mj@ew>ZMteA>2i`0>mS z_$K=UtW(|N`nE(+XLF!&)MVD?T(gwIM-PoFt@G@Wye)N2lM<1^Uw_()en9>#@|b(( zGCXgSEq@en`bv{3b7#QWvTES8h1Y-L`W{E7M3KJ+{%Abx!57ZD!SlJ7l8|uY>e$$u z%rhkuNAJC8gz1Y5Hlkc;?WFACzre zNer8P|CMiGVkX+N-0Xf`sJchX>9J9$?I})niaGkFVY9H7HUK_%#2@*%8|lR%_ppqK zzNyr<{?6IeuRQLj!fC2=kG~jANes(` z$~I{iW_LtwH>I+F+nh$_?1tixOHM} z8=Eu_hm2lqkA5fh*gpvdH6>C>7avYAQ2O2@CDstRpA}<8tx7GITz|`3z+06N|7U4e zWAECEWkiY})|&p_LP9UxrbP0^Pn*GgmE&U%zQaKI4>6=lHQ4zpkr2KH{^PNW!VCW{ zpM!+kwsBq&yO6`fW*=A1&HaVia?u0uSaHmiIX3#s+-t+9V>fj!vBg2&F%28|v!YL; zz?kx`aNd)5awa8!+OhR zub1;Ljw)=$!(vwtd|IbBl3c&Uo_B?&xZe1-v8bd}wQFPR7-&;T4Pl%9t@?reHJn)zq(yxrc}aO z?%~3O9HLdt1Lv{E=M8z^0#g&Ks*_N{l8kl9mWheEJTZeL)W~yS4=iZxC<- z>n@?fE)=2$3}$xw!&XJ7GtgMu%K+)e8&|yU+K$=r@BmlEjg&*bq^%i#JlQQvqErq$ z`Cc_z&@8;?G`*T$|Hu&D98q*$WdE*l3^ml9nEO}nMHegKsdFkw8|5M$&zZ`){lir3a{RVETy0FU0Yk~r7+?{ zng8nj4C(HBD;)S3*>!toWKeI_Q$& zKj{t!*?jcsRQ!Ry-iJ7f*;6k5l7P9Uhru5yI(Qy;sEZD=b4*EgfbPg8HbZ|jQH(pM zupP~{qo%7?M~1eTOSqykAe+bSu1qY{4+El}!(U+w?-r6hQ3=`7W#%Tra>)S9<6EH8bapThnuq5wj z0QDYZc)>lCs76Em^*0rm@aoF1dRTf|OH1#MHzSoz!F$srn_>=NqrnQI;zY~3)sM`s z>kXVYZCfvj?oYprzk%g762F$qj0aORH<`quOLEp3?Js_2+fJthXb^MW34L@OLTi<| zJ2aA8GWK=;`&`B4BR5dxS=;AQd&~%oxTvtTmBQ-KmjfH5T;1vE#8c7G_V1{P zckc_k<1#(no_Q!wm8BaCkg@8%J}$WRZ8TDcuQdp}nGKtk+l_WCon>_pA)}|aXpDP#qPIr+We&YCM6I{!@xVo6wDMaU zqCIEMqKo9Rmts8h_^qcSEI<47+D+QK!E1|d6d2*l6;xp1mdo3)dc03eDX7qJkH0*M zrVc}Na%7(p^S?C=_`eWycUOPvVH{OjPBmWC>}NVHMi5al9B}%cf35=iZdMoN#1W+~ zvS3sbxYgiUY~C2Thbo9$WEy!^3n_*lSE3;68>LIpx*zz%n+4SPAwib{WAMDIj{LCE ztuFppnj4-C!xJmZB2vuXy~lO2$yo1(lw=iQImqm@Q&ln}W`=wMv75S+HZFlZ!|9Y8 z!}=Y5+x0*CCQ#SB=(L&nUu&D9K#j}03E7qjZnFFA;_|vtST-s|R>km(BBU zt9!K57aAWNc2EN3Yyw)vws zls;hp2a&eHQQr${=-siB#Ebii5DXrxDUOY8<+%d!e{zu2$acND(6dfvifzSf?os9P-c1d*kO{6Dy zRPMl%G9s;fG|OA6CR3=(+ynS5J{#h(!aV->advk0Bf~B)FK=#cVzJ1awI4q?zm(;$ zGc$iH)PBo;FDM`&;M;W&ghgPK7ES`^Y0hX4s%>D07fQ4<6Vek__v-sMhday_?y zFFPY4g1;o`d}EQf;|96R%@em7bDv`K7XQ5pUBi1X<5}}g`adUC1zK_v8KnMDKX;e( zSyeg@f`-R_clPEE=6kovjT$;Mx=t59an|zCL$f857}YbCbLrsM*IQF$t8_M@OdE6} zOEV8#UoXPhWXXFTE%sxi?0a0r-9Za-*7g4Vu@ z|Gaup>y4$S5dv)Q4ogg}*-Y?rfr;8;V|8UedgB!#epVD7=@BsSjUS&PK-Vk$)`NU` zv~y^v3ucv%n^kJ#oQYK72bC(`qR|oAweetfmt~U2_zLAfG zF!H55{RCy5nz{qiPY@a*xI=;=gJE|bSPC0#{=m2RNxJLZ#jQgauFVnR+ZIj$s0=wh zINn?BuWM{<4BZ=)VU6d#eS2}eB-fOEr6e~LD#c1L-!Ix~)!@DSn&$Ra^PZutt*s*( zkKeN~UT%qoLL6aoqf4}rtc2IXiNpx|KG|=(-whFj2U<|N1;5qZzWfC?T(2k(n=oWX z5~b96ZAMspy?!Ip7}ZoJ9;%k*)fqFKG`8W*5h(jw&Al&WQ!}ofiv4CO(tTk$-C0Bz zAhg)8uxQ%w?P-!ouN2L#g5Do_peZ+%BtiV?c%sk2b7IoWE!K|SR@~8*lQ&`W5X4fz zFv|Awa8Yy02P!Ze7VyjPaywpBTTa1O6w)nOrEv>m9jx(Kj+f3-yDjxxY z>CA_78^0*|STssU%<*8soW4YPn}sEF95YW3jjZIm4SvRT6Z}UzEK<33o`>Hqw;Bn! zs0wz#T}WSlMmu|czQ-TBM5;)>)7<$mrkj37(fJf|t|cb3ht4s)12N0?#*h<4`v~WI zYr<(ACR5VKE#D57*E*K%wir)kCchYS51qocUGsFqYl(pNA#P68C^{}KNr6?e>*Qdw zbjSser18mXGY%*G~!udt{LySzYvN-p+tFTwa<=T}!{oH1GWj%lp%T0V}*XjS14 zNwDWuDFTY-YQ1}v72d~}AF0ZkQ#bL# z?KthOZ_GkC0?vRrSg~ih!2m`$`#7eWKFpl7fu)Sr+GNf(ZnYVs^3YG{gh6AHHSmBs zQrrt2r_+PY#FF}^rYj^Qy>x|zg~^+^2~@74xP$~SCtzoxv!I|r&S#~^Y;SjW9Az7} zJ+BI5l@=B*&&yM>i4k{7&L6j~;Ps)xXJ5)NMB3N)@^0l!Hf{C9{@Fui z>aQ}btsf^zZBy;B|B@mrdnO}5jk|Ge$ZP-V1H@4KeFBvm$HQ9%!!PN#!fxv>;#+Z8 zLk0=pO(m~xzfBLg7Vz|SLa7RFy|+v#%`?}Zo?>k zn`t#Nxwg(u5&$M!;Z@Uuh4wkls(G<4Rr|_JUi(51U;Z<-*}T>AVw|P6epYPv97kRQ zKjwSpd>WT8k8|)|)e^!^ItD2ZS*CP(mR&1o^0rQ36_L^hrVa-kb0mgKerDmk)pI#O zCr4l?muNXdi?O)fyE{Z{K=fT=QJ-GZgdX3k&RNr3E-T@ zdiRAn(JIi0(S!k?!2^m#OApV` zJD)quL2+6MQTQ3%eZl<)`(MAc-iAp)5{g=a5Bum&f34rv`KLYJ zy?ghPyCD77EB>;gL0A)_IqS;90KAoR%HR4nYMQUZ_=bj{r0gjgQ%8kXe%-f z@!`AXzU(J$_gX?j4~^Zi-EUi@T{<(>r{q%l^j2jqYD7vdqf{WbDQ$A_<(V8DND_nY z@7Lo#)J&B3KB!Y1@i?lSCBQs270#JEnxvR>)>8@T9%Nn5XHA|MT+_-k?$hmuhriJ( zeYGO~6jMVL7Lp38KS^$w+qd!cVB#BdqURnAeqvIrVf9MMI}DG{(DBC-zf&jU#B;$& zPp=dX$M=g&a&x1GCfHEwi^j*uH`_%-3VQkZZO*ndMKXW`W^I@%1|LptMDwvWy5eOv zVANPJYjZH%OO1f}N*9Zm+8s_6a=>DgkBB%jpBUfOx=T*1t6rjyAKnFlytIN;K~$;l zz*ba^(cRVwGX_S8hqUnX_d~MJ|S@V3JuJd9AUYr zsFBQ;VUz~k$~(+VfVq~yrYDG_%zv3zrl>%3|0WAm_4{Cn+4sna)J9Ezc@Ez>$RP@ zzQgiXN%`>2hjWD>Y=EDa&A|sEozjWqw`cR|oS5-VNzel&-dhsO~qzSWQS!Z?C|r9Sf{U%Mw{e-z%cm8~A4NGVcN%#HKKZuzwe ze}8Af6>)d1_HdTDqz|Y%b^B>vH`8~L)RdO9QI%GIXU$_5-KxF&#(8YRja@CWVc4$V zl;x%Jkf)GI>mf+Rp zW$Q*?L{$~7;F+--E%7HjYp15BzI;LH$Pwq%1?bZ>hJHCHb?oI_-Zk7evSTB@#TKs8 zV$-(kokgdXbPY1=fvE01eQvNggtjip@pH-Az8N>?0Qeh+$Zqv&1nhk)~Hc zSL#0>k~}Sz)B%1T#cvzxuc$P&wTasBzGvgp&8vU}ZegqX?LnD2;&9bSQhe~xD~ZE{ zP}+EIO*i=9rBKZN`K`3zuZ{KfaW`b148&&xQ4dm0JjBrj|nobvA>zC|3zHdXRzL2vlUQpYC|w+V=6-sXaq<`jq0C=d2{ zF2xPkiklH`a2^jk+CI5XJ|@4OUp(0%3-}sdHN}2|)_JBT)rB}z{P@)b?)Zn_mZtpz+D?_sem4uar&};>mAfujF=p5N)Q-J^Hz# zSCTpyZ+TH>a|JE5yFZhe8%>QzD4km(X=RA1wt0|l?(5Rq9Gp4;Dj()Q8V^(sJys!3 zf&DI;{-<(>E9&UG65^aF^j`RSQr=4yN@Jt-jz#VK~c+Pl=KXTvAQrTOlfg=fKPS@8LHjstSGi_5t?eVCK z5!Tj0)2HV-_gY)_z7|E$T;yQnTP#o8oC|7=+fP7DhzdK)nxOZJyvf!`Lt#>ZGL z+%Js*?n9aaVF@1Im}Mw1u(5H+<2D4T>xh(SZ7BA$Ss-bkWsr5opJC$-VnPqg6<#ll z?8Afyg6aAR+!8~+{2TTEcZBVCV5TCF_Lx2CH26AN!Oys1vfQ$6xj(hk`3PSt)_Q_1 z)r@7_$IaQMKd`b=4A{2oO51E!c(%61W3wEvP%R7eNTh8u?AAySNX#Vj?$T*9} z@4tRQofAc7%>(3sV@+9{vAQFTF+jCDFjE%fZGUcC<33Bo327HT2UjbYEb~$v6EGF^ zn)6_Crte{~fIjcY!RA!5rKojdQbvYAj01jBK?pqG`}ST%MF~Bq{NJd#(oWUaS8COY zUNbE0^4kNS_U)fP9|sy1vtOF`&o#ex7W#{&WHWJ|%~V-yy< z;B;=CJ`EnC!d)|#(;yw+{9Bp?)B8JK3;HQ-qKH7GvxN`t@+ zg0_Lnv=04!_t|E1mTP_^#Rj__larGj9U6fSK|w)=hHn(lXM=IpAD=Z8;R6*ugh$K1 zske6(Y|x{Hz*MeHJw1TxKSjd-JJqj)@SS>kBH>Y9R^=VBMeT{(doD#;K4MoASBi$8 zd-3WPWc@PHC02dcZV-64cX&QUoYyv)TgQeCK*m{cr|&#S6=HmKKUS|?5R@!8dZX`H zT3ptpIRdb_@*th=_&Ils_aqBR-1o+eZd9o>Y0GZPJi&qsSa0A-Ydl zwY8tNyqW5$?w4ELg071{p2B00us_>Yo$8z@Gp}|UWNmW8pSy+Ok9Tgg`s+x2H+&|W ziCd51`&*;QW_uMg*rkhek9!armqMgx}j%ZL}TRiH(ibEQaL3KUII|* zZ}UtuZDirJaOBjs0EkTonEVM;PB{89rOJJ|)YXp4xEpSTAT782h^7Fm`zfLl;O$^u zoqqbUzKk?p^^lEvEmMboQ{WAmDz6l6cYN?U1X}Rm%jYL&XyE&_fzo@k{G>WZ(a z31h4Hn7fYGg1R9MMG_wo?#nKVtgOuF_ej%y4Yk*D`i^nmX9ofwsu$IIC$YHIJc7ri zfyUh0+*Y^swf-zC{_Kt(KgV*rgqSA*wYT33AmH*X;Kn1Hr!V5aJWL*AtM={jue!RDubk`)y3omRo}t7a+c_fq z?2)&qbqVmB18-%8(Q=%)jzgTe)>9G@oj6H^^kJInygZZ~gi7xN1CEvmKkc#nO|-GP zn2~0HJm)AliWZ*=d9Fet;6j!kMcuGj@$A#^^Hi}ep6K58bf5sW+VXnR)#rJfQQlMu z9o*6Uu|1Jl5?$OBPOAJ2#1TMU#4~Nd@*P2l9Fb0=I9`%)9401YKQf z5>w2j`Ah28R+jHG+#&<@HPBrMu4d~<9fo$ZYp`9xz;cxh76?vqnMz_R-q;(if=6W8o)7fpy^!YsJ8&wH-<4y{r8KZrq=Gzhacj^m5@gpS0r7 zNdz!A@4ZWSinUTTXBcS=I(qqZV+7@&_G$$=A(Z08G27&3YmwtKaPyLR$>3%%z^s=3 zuQec>QTb<*#EIaj(X!`yVs)$N#y)pv5J(LK%NyM)&x=Czu}wG1LJWPD(c#EJkHpC7 zQkm&Qz?FA5XnhI{CEGuLO60LRGu=aov;?et?Hq{v^>MNI8ify! zS-lfN@o?>0u1nFZWf)uOL(FG`~k?!xf8~tB2)N*s#?#Psm!Y9u?}`=kU9L!72OB z?N`6H{b^K$2IVUq+bc$xu9um+r^%JuDol1rSNAplTCxrXO6uv~sy{iYw`zV6bS&Ij z1^Zht*IusN&$;@bAciemN1(C6iz>@UTg8R$?ikKU^dR5wS*Rz-=@d z&?0yPB$qHyt7CxtJQckPrhT`!I*$D{HN}$hvhLftD`8=`(Z=dceCEL~RX*^A=G#4b zWSIVdh(hSmugdK$-3$vqht$o!<7eINV@>9LAS9OpToK5u{MOipH#zq8gv^o(_8 zl@n-XCD)Wqgs5EGWiC|wJjfS5eSV&>l+ge9Fj@G;-!#Z54SN0h^LXjQ-2fXXXr*_j{$I^4lzKNr2N+Xf@q&E=J1XN0aflO+RrMk zY}1VIp>T>N8wp&R=^}5<8a8@J`77oTcBowY>zkh-puH*$QP^Hutz$RH$kg+bs6cIL z{_F))^J&+?{c~X$_g>G=@RN}EjvZ;Y$e`=5y+`~u=zc8f6NE$LtG@q#>7i%)0wUNG zdxR_V+?HyedGQ1sbv4R(&k-L>B>{cD!;yoc?}bb**A9)ruo4!W*nypL6#1T0e}z?-47Lvw`)>XW^$hcxT`xm^Y_ZCybo#{S zoo19MgX>HATVwMxqap(Z?4kvbVG^>T&wp&G$w*-2oKr47u3Yw%hxIO}5M^S4>GD$U za9;?O@rHnd+{6P9$T?mJ=OT`uO!AuC{7FK=LkMV7r8|`ExJNaeP&D3TmvaShOJiyC z0o_(%hW_|4s<7y;vbI319#oEu-DYcL`exA?#W5{)VQ%gaW~*fO=9%AVtQ&>MiXOF) zlVF9W>i0cH7N9lKv7Gzn$PIoDY|Z{6Ub892|;9vyny||~>pU-c(7PXc3_jMLm{P$j`C&n&2 zAFwr6BuhDSKLh+O2Cs1I--;4fK7sNpLc#Y6kSEW9aHNP{a-nJI*F>3jiNMnIrHfXq z@GX^!?2u*d@WhV($9nlHak;9%T(qk7D%fEW-C z93GYa+o7h0ni#}<5;JPiv2(MHV#|NSKW1MtQ)-G2Q!k)XyLI_};L^5H2`7P)Eb)0j zRKznMqKItAK&ocLTln1v4U^j$fBOq$XeqgC z?IvIvySSLI%ZM(0^fl9~SQ_9bOgKV?3=eoSuvmhOF)u$kN4f#a3rq!BgXyAY8bSN= zvL4kPJMm9`#y`0Rc$4}GySHRVFnEV+H8!s?;kgDDhO`rXlnhAl<9-(*80qUiV~}!X zbP8o~MSt0`TjsoB@o~J8=l0PL`~7Yy9t^1rrHZ?b2|1DfCns}L3t(47eNeqyM*V-U zXL(1!eE6a&D}G6Hic@Yb4r$BqVdQ=QvLrG553_u_@VB$2BwAbYA^b4YvC`UV#A=;& ziJafmw9jBCTM$1CbT9@7f<=mJ>{MUvukpC{iE4@7*1xTXUqUhv+uNr zRa^1kc04=#_fG~yWhV|N2m8@{0&TE|Kl40G1TFR)w-eOE&gyweNwYp{&&nZ6BIZj8 z{@&iC-wtTTX0SH&?ma9D5^j3V%r$Xijf;oNYg-ZqbW;yHLc!}3?eD^eO=2=7~}r#k&)<5rP}KzXz6_~=B@ zdvik@9=}o8h*6VUjf#YIiog!41*h7^*iw;rBud*XD7vf*^BG%C{Mr49vig65?qkw%LzT{ z9o&fdpX569VF8X*?7C53r917!=KmH~8G!!EwjHOhWadGini>i29hra&alGkQ7lhVr zml`%Q24YoxT}IwL4_=PmC$%qEwm^D+XDf~=AX}+uPZ{e?t}?FU%*uS_-P!)~ zZzhtVp9{VL6M)7TeWY0g*r}q}illbY8F$FQq)|OEc$9Ho6flDNGbH`a!?FshF$oid z(HPnDAoNwg&(IvuN3I?UPmEl3jGpjft@r*+&&YpmZ=9pU6}&(aeMn|6#0g%1Ndwi& z@_{`~vP7CRAXycWZ(A5KjLtSQ^X1-bFgXEqRzen)@GrjN%_lUs zA)FBF8X5N?Wd#5QCk6N7<-&;xzs-|!h=*|!ET!?tVzWFZ%)SfR5BdgmM5g#y^gbLR z^@HdC5c{Vw>p#!hBTXS~2Yg2^8_CV;6k$znxa6X>MK_o@u! zm?^Y)mSJQ#=!E!xK7alGns4j+BwBS67Wzs+5r#m!eBFV-Ny< zfzakKw?JpBE(=LX=^LN$5ORiNLT?=***+`n5i$NbcYY)5h4ZL4(Idxk+sD0xQ{pNN z65zZ=h{AbHR18?0ZfsltwCJ&DU@_I&V+*rSLmq2!Y7MTGB4t-QvS1e6W!(7opa1s= z$xVtw%IB7DWADC4qO|8V<04X2oTgzm{y*8B{l2%^Ee$#;k6c zh`XT&J&upLr`3c}#)B5;P9@2Re{oiYTqk89?(U^99;KhJ*L)Gdbm3o;j8l+fxER*2 z8FyP7fY~nXDXp;m9bHH{J!L0SXBD8tdx`#Isd1~^+>i0jm_(3oeJoSB9B zG>pDDco9Y+da*{9 z&oWGDQ@^-Cm@)vrp&i3vUl%A%Q&ap&+Z>pNM;9z56U8La$>a!_q$a>3h@ZWdm1A_G z#FSOZv^@|$8%)7d%9t~?bNm}tv$968^Hpx$VYzkGgv&f!KL{wP{^q7qB(}Zt z3$R(&_o@&NYfaBseJTnWBfkpHt}nacnGz6_W}a3tSviOry}KK4dD`_kU3c)%$sXty z+5-3CvKa{6`@Y2(L`DbytxVeuU&X?$cIiyLL3Zn~49ybr@N}jUUL7vO(rT~|r+l&) zpY#-GQn{(+W-VhXW4ER>^nH}+)ET2*X`!jXKrG@qU(2D_c^Ua1;L}`NckSeCIy7x6 zVXir6QWEqze;~*{F2xQJdny*b>;D!KE)bHC+YLo|Au?os8CWHN6N-R4u1L(XW@$>;M%9sIMm%fK z4�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 oh<%cqz-w}=6.0" - } - }, - "node_modules/@opencensus/propagation-b3": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@opencensus/propagation-b3/-/propagation-b3-0.0.8.tgz", - "integrity": "sha512-PffXX2AL8Sh0VHQ52jJC4u3T0H6wDK6N/4bg7xh4ngMYOIi13aR1kzVvX1sVDBgfGwDOkMbl4c54Xm3tlPx/+A==", - "dependencies": { - "@opencensus/core": "^0.0.8", - "uuid": "^3.2.1" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@opencensus/propagation-b3/node_modules/@opencensus/core": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.8.tgz", - "integrity": "sha512-yUFT59SFhGMYQgX0PhoTR0LBff2BEhPrD9io1jWfF/VDbakRfs6Pq60rjv0Z7iaTav5gQlttJCX2+VPxFWCuoQ==", - "dependencies": { - "continuation-local-storage": "^3.2.1", - "log-driver": "^1.2.7", - "semver": "^5.5.0", - "shimmer": "^1.2.0", - "uuid": "^3.2.1" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@pm2/agent": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-1.0.8.tgz", - "integrity": "sha512-r8mud8BhBz+a2yjlgtk+PBXUR5EQ9UKSJCs232OxfCmuBr1MZw0Mo+Kfog6WJ8OmVk99r1so9yTUK4IyrgGcMQ==", - "dependencies": { - "async": "~3.2.0", - "chalk": "~3.0.0", - "dayjs": "~1.8.24", - "debug": "~4.3.1", - "eventemitter2": "~5.0.1", - "fclone": "~1.0.11", - "nssocket": "0.6.0", - "pm2-axon": "~4.0.1", - "pm2-axon-rpc": "~0.7.0", - "proxy-agent": "~4.0.1", - "semver": "~7.2.0", - "ws": "~7.2.0" - } - }, - "node_modules/@pm2/agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@pm2/agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@pm2/agent/node_modules/semver": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.2.3.tgz", - "integrity": "sha512-utbW9Z7ZxVvwiIWkdOMLOR9G/NFXh2aRucghkVrEMJWuC++r3lCkBC3LwqBinyHzGMAJxY5tn6VakZGHObq5ig==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@pm2/io": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@pm2/io/-/io-5.0.0.tgz", - "integrity": "sha512-3rToDVJaRoob5Lq8+7Q2TZFruoEkdORxwzFpZaqF4bmH6Bkd7kAbdPrI/z8X6k1Meq5rTtScM7MmDgppH6aLlw==", - "dependencies": { - "@opencensus/core": "0.0.9", - "@opencensus/propagation-b3": "0.0.8", - "async": "~2.6.1", - "debug": "~4.3.1", - "eventemitter2": "^6.3.1", - "require-in-the-middle": "^5.0.0", - "semver": "6.3.0", - "shimmer": "^1.2.0", - "signal-exit": "^3.0.3", - "tslib": "1.9.3" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@pm2/io/node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/@pm2/io/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@pm2/io/node_modules/eventemitter2": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz", - "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==" - }, - "node_modules/@pm2/io/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@pm2/io/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@pm2/js-api": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.6.7.tgz", - "integrity": "sha512-jiJUhbdsK+5C4zhPZNnyA3wRI01dEc6a2GhcQ9qI38DyIk+S+C8iC3fGjcjUbt/viLYKPjlAaE+hcT2/JMQPXw==", - "dependencies": { - "async": "^2.6.3", - "axios": "^0.21.0", - "debug": "~4.3.1", - "eventemitter2": "^6.3.1", - "ws": "^7.0.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@pm2/js-api/node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/@pm2/js-api/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@pm2/js-api/node_modules/eventemitter2": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz", - "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==" - }, - "node_modules/@pm2/js-api/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@pm2/pm2-version-check": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz", - "integrity": "sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==", - "dependencies": { - "debug": "^4.3.1" - } - }, - "node_modules/@pm2/pm2-version-check/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" + "express": "^4.18.1", + "mysql2": "^2.3.3", + "sequelize": "^6.19.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "devDependencies": { + "nodemon": "^2.0.16" } }, - "node_modules/@pm2/pm2-version-check/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, "engines": { "node": ">=6" } @@ -259,6 +31,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, "dependencies": { "defer-to-connect": "^1.0.1" }, @@ -266,129 +39,61 @@ "node": ">=6" } }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "engines": { - "node": ">= 6" - } - }, - "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/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/amp": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz", - "integrity": "sha1-at+NWKdPNh6CwfqNOJwHnhOfxH0=" - }, - "node_modules/amp-message": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz", - "integrity": "sha1-p48cmJlQh602GSpBKY5NtJ49/EU=", + "node_modules/@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", "dependencies": { - "amp": "0.3.1" + "@types/ms": "*" } }, - "node_modules/ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dependencies": { - "string-width": "^3.0.0" - } + "node_modules/@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, - "node_modules/ansi-align/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "engines": { - "node": ">=6" - } + "node_modules/@types/node": { + "version": "17.0.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.31.tgz", + "integrity": "sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==" }, - "node_modules/ansi-align/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "node_modules/@types/validator": { + "version": "13.7.2", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.2.tgz", + "integrity": "sha512-KFcchQ3h0OPQgFirBRPZr5F/sVjxZsOrQHedj3zi8AH3Zv/hOLx2OLR4hxR5HcfoU+33n69ZuOfzthKVdMoTiw==" }, - "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "engines": { - "node": ">=4" - } + "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==", + "dev": true }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "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": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, "engines": { - "node": ">=6" + "node": ">= 0.6" } }, - "node_modules/ansi-align/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "engines": { - "node": ">=6" + "string-width": "^4.1.0" } }, "node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "engines": { "node": ">=8" } @@ -397,6 +102,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -411,6 +117,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -419,105 +126,79 @@ "node": ">= 8" } }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/argparse/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ast-types/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" - }, - "node_modules/async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" - }, - "node_modules/async-listener": { - "version": "0.6.10", - "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz", - "integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==", - "dependencies": { - "semver": "^5.3.0", - "shimmer": "^1.1.0" - }, - "engines": { - "node": "<=0.11.8 || >0.11.10" - } - }, - "node_modules/axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", - "dependencies": { - "follow-redirects": "^1.10.0" - } + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "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==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "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==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/blessed": { - "version": "0.1.81", - "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz", - "integrity": "sha1-+WLWh+wsNpVwrnGvhDJW5tDKESk=", - "bin": { - "blessed": "bin/tput.js" + "node_modules/body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "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.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">= 0.8.0" + "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/bodec": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bodec/-/bodec-0.1.0.tgz", - "integrity": "sha1-vIUVVUMPI8n3ZQp172TGqUw0GMw=" + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "node_modules/boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, "dependencies": { "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -527,6 +208,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -536,6 +218,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -543,15 +226,10 @@ "node": ">=8" } }, - "node_modules/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==" - }, "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "engines": { "node": ">= 0.8" } @@ -560,6 +238,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -577,6 +256,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, "dependencies": { "pump": "^3.0.0" }, @@ -591,34 +271,56 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, "engines": { "node": ">=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/sponsors/ljharb" + } + }, "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/chalk/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -627,6 +329,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -634,40 +337,44 @@ "node": ">=8" } }, - "node_modules/charm": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", - "integrity": "sha1-BsIe7RobBq62dVPNxT4jJ0usIpY=" - }, "node_modules/chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "dependencies": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "glob-parent": "~5.1.0", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" }, "engines": { "node": ">= 8.10.0" }, "optionalDependencies": { - "fsevents": "~2.3.1" + "fsevents": "~2.3.2" } }, "node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true }, "node_modules/cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, "engines": { "node": ">=6" }, @@ -675,21 +382,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-tableau": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cli-tableau/-/cli-tableau-2.0.1.tgz", - "integrity": "sha512-he+WTicka9cl0Fg/y+YyxcN6/bfQ/1O3QmgxRXDhABKqLzvoOSM4fMzp39uMyLBulAFuywD2N7UaoQE7WaADxQ==", - "dependencies": { - "chalk": "3.0.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, "dependencies": { "mimic-response": "^1.0.0" } @@ -698,6 +395,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -708,22 +406,20 @@ "node_modules/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==" - }, - "node_modules/commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "node_modules/configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, "dependencies": { "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", @@ -736,58 +432,52 @@ "node": ">=8" } }, - "node_modules/continuation-local-storage": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz", - "integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==", + "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": { - "async-listener": "^0.6.0", - "emitter-listener": "^1.1.1" + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" } }, - "node_modules/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=" + "node_modules/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==", + "engines": { + "node": ">= 0.6" + } }, - "node_modules/cron": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz", - "integrity": "sha512-Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==", - "dependencies": { - "moment-timezone": "^0.5.x" + "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": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, "node_modules/crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/culvert": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz", - "integrity": "sha1-lQL18BVKLVoioCPnn3HMk2+m728=" - }, - "node_modules/data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/dayjs": { - "version": "1.8.36", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz", - "integrity": "sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==" - }, "node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "dependencies": { "ms": "^2.1.1" } @@ -796,6 +486,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, "dependencies": { "mimic-response": "^1.0.0" }, @@ -807,45 +498,47 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, "engines": { "node": ">=4.0.0" } }, - "node_modules/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=" - }, "node_modules/defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true }, - "node_modules/degenerator": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-2.2.0.tgz", - "integrity": "sha512-aiQcQowF01RxFI4ZLFMpzyotbQonhNpBao6dkI8JPk5a+hmSjR5ErHp2CQySmQe8os3VBqLCIh87nDBgZXvsmg==", - "dependencies": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0" - }, + "node_modules/denque": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==", "engines": { - "node": ">= 6" + "node": ">=0.10" } }, "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "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.6" + "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/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, "dependencies": { "is-obj": "^2.0.0" }, @@ -861,138 +554,126 @@ "node": ">=10" } }, + "node_modules/dottie": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz", + "integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg==" + }, "node_modules/duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true }, - "node_modules/emitter-listener": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz", - "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==", - "dependencies": { - "shimmer": "^1.2.0" - } + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "engines": { + "node": ">= 0.8" + } }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, "dependencies": { "once": "^1.4.0" } }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/escape-goat": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "engines": { - "node": ">=4.0" + "node": ">= 0.6" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" + "node_modules/express": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "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.10.3", + "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/eventemitter2": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", - "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "node_modules/fclone": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz", - "integrity": "sha1-EOhdo4v+p/xZk0HClu4ddyZu5kA=" - }, - "node_modules/file-uri-to-path": { + "node_modules/express/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", - "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==", - "engines": { - "node": ">= 6" - } + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "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==", + "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1000,47 +681,57 @@ "node": ">=8" } }, - "node_modules/follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" + "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" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "engines": { + "node": ">= 0.8" } }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "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": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, + "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "engines": { - "node": ">=6 <7 || >=8" + "node": ">= 0.6" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "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==", + "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -1050,104 +741,49 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", - "dependencies": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "engines": { - "node": ">=0.8.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-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", - "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", "dependencies": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" - }, - "engines": { - "node": ">= 6" + "is-property": "^1.0.2" } }, - "node_modules/get-uri/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-uri/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/git-node-fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/git-node-fs/-/git-node-fs-1.0.0.tgz", - "integrity": "sha1-SbIV4kLr5Dqkx1Ybu6SZUhdSCA8=" - }, - "node_modules/git-sha1": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/git-sha1/-/git-sha1-0.1.2.tgz", - "integrity": "sha1-WZrBkrcYdYJeE6RF86bgURjC90U=" - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, "dependencies": { - "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" + "pump": "^3.0.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=6" } }, "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==", + "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -1156,14 +792,15 @@ } }, "node_modules/global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, "dependencies": { - "ini": "1.3.7" + "ini": "2.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1173,6 +810,7 @@ "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, "dependencies": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", @@ -1191,9 +829,10 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true }, "node_modules/has": { "version": "1.0.3", @@ -1210,14 +849,27 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, "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/has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, "engines": { "node": ">=8" } @@ -1225,90 +877,24 @@ "node_modules/http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true }, "node_modules/http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "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": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">= 0.8" } }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -1323,12 +909,14 @@ "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": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true }, "node_modules/import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true, "engines": { "node": ">=4" } @@ -1337,18 +925,18 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, "engines": { "node": ">=0.8.19" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } + "node_modules/inflection": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.2.tgz", + "integrity": "sha512-cmZlljCRTBFouT8UzMzrGcVEvkv6D/wBdcdKG7J1QH5cXjtU75Dm+P27v9EKu/Y43UYyCJd1WC4zLebRrC8NBw==", + "engines": [ + "node >= 0.4.0" + ] }, "node_modules/inherits": { "version": "2.0.4", @@ -1356,19 +944,27 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "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-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==", + "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -1380,6 +976,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, "dependencies": { "ci-info": "^2.0.0" }, @@ -1387,21 +984,11 @@ "is-ci": "bin.js" } }, - "node_modules/is-core-module": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", - "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -1410,14 +997,16 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "engines": { "node": ">=8" } }, "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -1426,32 +1015,38 @@ } }, "node_modules/is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, "dependencies": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "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==", + "dev": true, "engines": { "node": ">=0.12.0" } @@ -1460,6 +1055,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, "engines": { "node": ">=8" } @@ -1468,53 +1064,39 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, "engines": { "node": ">=8" } }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" + }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true }, "node_modules/is-yarn-global": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/js-git": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/js-git/-/js-git-0.7.8.tgz", - "integrity": "sha1-UvplWrYYd9bxB578ZTS1VPMeVEQ=", - "dependencies": { - "bodec": "^0.1.0", - "culvert": "^0.1.2", - "git-sha1": "^0.1.2", - "pako": "^0.2.5" - } + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true }, "node_modules/json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true }, "node_modules/keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, "dependencies": { "json-buffer": "3.0.0" } @@ -1523,6 +1105,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, "dependencies": { "package-json": "^6.3.0" }, @@ -1530,59 +1113,41 @@ "node": ">=8" } }, - "node_modules/lazy": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", - "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=", - "engines": { - "node": ">=0.2.0" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.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/log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", - "engines": { - "node": ">=0.8.6" - } + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" }, "node_modules/lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dependencies": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, "dependencies": { "semver": "^6.0.0" }, @@ -1597,22 +1162,76 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, "bin": { "semver": "bin/semver.js" } }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "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": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "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/mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, "engines": { "node": ">=4" } }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1621,38 +1240,23 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha1-EUyUlnPiqKNenTV4hSeqN7Z52is=" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true }, "node_modules/moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", "engines": { "node": "*" } }, "node_modules/moment-timezone": { - "version": "0.5.33", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.33.tgz", - "integrity": "sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==", + "version": "0.5.34", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz", + "integrity": "sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==", "dependencies": { "moment": ">= 2.9.0" }, @@ -1665,51 +1269,85 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + "node_modules/mysql2": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz", + "integrity": "sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==", + "dependencies": { + "denque": "^2.0.1", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^4.0.0", + "lru-cache": "^6.0.0", + "named-placeholders": "^1.1.2", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } }, - "node_modules/needle": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", - "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", + "node_modules/mysql2/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, - "bin": { - "needle": "bin/needle" + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz", + "integrity": "sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==", + "dependencies": { + "lru-cache": "^4.1.3" }, "engines": { - "node": ">= 4.4.x" + "node": ">=6.0.0" } }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "node_modules/named-placeholders/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/named-placeholders/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "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.4.0" + "node": ">= 0.6" } }, "node_modules/nodemon": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz", - "integrity": "sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", + "integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==", + "dev": true, "hasInstallScript": true, "dependencies": { - "chokidar": "^3.2.2", - "debug": "^3.2.6", + "chokidar": "^3.5.2", + "debug": "^3.2.7", "ignore-by-default": "^1.0.1", "minimatch": "^3.0.4", - "pstree.remy": "^1.1.7", + "pstree.remy": "^1.1.8", "semver": "^5.7.1", "supports-color": "^5.5.0", "touch": "^3.1.0", - "undefsafe": "^2.0.3", - "update-notifier": "^4.1.0" + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" }, "bin": { "nodemon": "bin/nodemon.js" @@ -1726,6 +1364,7 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, "dependencies": { "abbrev": "1" }, @@ -1740,124 +1379,62 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/nssocket": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz", - "integrity": "sha1-Wflvb/MhVm8zxw99vu7N/cBxVPo=", + "node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "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": { - "eventemitter2": "~0.4.14", - "lazy": "~1.0.11" + "ee-first": "1.1.1" }, "engines": { - "node": ">= 0.10.x" + "node": ">= 0.8" } }, - "node_modules/nssocket/node_modules/eventemitter2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=" - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, "dependencies": { "wrappy": "1" } }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, "engines": { "node": ">=6" } }, - "node_modules/pac-proxy-agent": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-4.1.0.tgz", - "integrity": "sha512-ejNgYm2HTXSIYX9eFlkvqFp8hyJ374uDf0Zq5YUAifiSh1D6fo+iBivQZirGvVv8dCYUsLhmLBRhlAYvBKI5+Q==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^4.1.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pac-proxy-agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/pac-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/pac-resolver": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-4.2.0.tgz", - "integrity": "sha512-rPACZdUyuxT5Io/gFKUeeZFfE5T7ve7cAkE5TUZRRfuKP0u5Hocwe48X7ZEm6mYB+bTB0Qf+xlVlA/RM/i6RCQ==", - "dependencies": { - "degenerator": "^2.2.0", - "ip": "^1.1.5", - "netmask": "^2.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/package-json": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, "dependencies": { "got": "^9.6.0", "registry-auth-token": "^4.0.0", @@ -1872,32 +1449,34 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, "bin": { "semver": "bin/semver.js" } }, - "node_modules/pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" - }, - "node_modules/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=", + "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.10.0" + "node": ">= 0.8" } }, - "node_modules/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==" + "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": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "node_modules/pg-connection-string": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", + "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" }, "node_modules/picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "engines": { "node": ">=8.6" }, @@ -1905,454 +1484,166 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pidusage": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-2.0.21.tgz", - "integrity": "sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==", - "dependencies": { - "safe-buffer": "^5.2.1" - }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/pm2": { - "version": "4.5.6", - "resolved": "https://registry.npmjs.org/pm2/-/pm2-4.5.6.tgz", - "integrity": "sha512-4J5q704Xl6VmpmQhXFGMJL4kXyyQw3AZM1FE9vRxhS3LiDI/+WVBtOM6pqJ4g/RKW+AUjEkc23i/DCC4BVenDA==", + "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": { - "@pm2/agent": "~1.0.8", - "@pm2/io": "~5.0.0", - "@pm2/js-api": "~0.6.7", - "@pm2/pm2-version-check": "latest", - "async": "~3.2.0", - "blessed": "0.1.81", - "chalk": "3.0.0", - "chokidar": "^3.5.1", - "cli-tableau": "^2.0.0", - "commander": "2.15.1", - "cron": "1.8.2", - "dayjs": "~1.8.25", - "debug": "^4.3.1", - "enquirer": "2.3.6", - "eventemitter2": "5.0.1", - "fclone": "1.0.11", - "mkdirp": "1.0.4", - "needle": "2.4.0", - "pidusage": "2.0.21", - "pm2-axon": "~4.0.1", - "pm2-axon-rpc": "~0.7.0", - "pm2-deploy": "~1.0.2", - "pm2-multimeter": "^0.1.2", - "promptly": "^2", - "ps-list": "6.3.0", - "semver": "^7.2", - "source-map-support": "0.5.19", - "sprintf-js": "1.1.2", - "vizion": "2.2.1", - "yamljs": "0.3.0" - }, - "bin": { - "pm2": "bin/pm2", - "pm2-dev": "bin/pm2-dev", - "pm2-docker": "bin/pm2-docker", - "pm2-runtime": "bin/pm2-runtime" + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" }, "engines": { - "node": ">=8.10.0" + "node": ">= 0.10" } }, - "node_modules/pm2-axon": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.1.tgz", - "integrity": "sha512-kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg==", + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "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==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, "dependencies": { - "amp": "~0.3.1", - "amp-message": "~0.1.1", - "debug": "^4.3.1", - "escape-string-regexp": "^4.0.0" - }, - "engines": { - "node": ">=5" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "node_modules/pm2-axon-rpc": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz", - "integrity": "sha512-FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw==", + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, "dependencies": { - "debug": "^4.3.1" + "escape-goat": "^2.0.0" }, "engines": { - "node": ">=5" + "node": ">=8" } }, - "node_modules/pm2-axon-rpc/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", "dependencies": { - "ms": "2.1.2" + "side-channel": "^1.0.4" }, "engines": { - "node": ">=6.0" + "node": ">=0.6" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pm2-axon-rpc/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/pm2-axon/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, + "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": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">= 0.6" } }, - "node_modules/pm2-axon/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/pm2-deploy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-1.0.2.tgz", - "integrity": "sha512-YJx6RXKrVrWaphEYf++EdOOx9EH18vM8RSZN/P1Y+NokTKqYAca/ejXwVLyiEpNju4HPZEk3Y2uZouwMqUlcgg==", + "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": { - "run-series": "^1.1.8", - "tv4": "^1.3.0" + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" }, "engines": { - "node": ">=4.0.0" + "node": ">= 0.8" } }, - "node_modules/pm2-multimeter": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz", - "integrity": "sha1-Gh5VFT1BoFU0zqI8/oYKuqDrSs4=", + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, "dependencies": { - "charm": "~0.1.1" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" } }, - "node_modules/pm2/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "dependencies": { - "ms": "2.1.2" + "picomatch": "^2.2.1" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=8.10.0" } }, - "node_modules/pm2/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, "dependencies": { - "yallist": "^4.0.0" + "rc": "^1.2.8" }, "engines": { - "node": ">=10" + "node": ">=6.0.0" } }, - "node_modules/pm2/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/pm2/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "rc": "^1.2.8" }, "engines": { - "node": ">=10" - } - }, - "node_modules/pm2/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "engines": { - "node": ">=4" - } - }, - "node_modules/promptly": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz", - "integrity": "sha1-KhP6BjaIoqWYOxYf/wEIoH0m/HQ=", - "dependencies": { - "read": "^1.0.4" - } - }, - "node_modules/proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-4.0.1.tgz", - "integrity": "sha512-ODnQnW2jc/FUVwHHuaZEfN5otg/fMbvMxz9nMSUQfJ9JU7q2SZvSULSsjLloVgJOiv9yhc8GlNMKc4GkFmcVEA==", - "dependencies": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^4.1.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/proxy-agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/ps-list": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-6.3.0.tgz", - "integrity": "sha512-qau0czUSB0fzSlBOQt0bo+I2v6R+xiQdj78e1BR/Qjfl5OHWJ/urXi8+ilw1eHe+5hSeDI1wrwVTgDp2wst4oA==", - "engines": { - "node": ">=8" - } - }, - "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/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/raw-body": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.3", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "dependencies": { - "mute-stream": "~0.0.4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/require-in-the-middle": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.1.0.tgz", - "integrity": "sha512-M2rLKVupQfJ5lf9OvqFGIT+9iVLnTmjgbOmpil12hiSQNn5zJTKGPoIisETNjfK+09vP3rpm1zJajmErpr2sEQ==", - "dependencies": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.12.0" - } - }, - "node_modules/require-in-the-middle/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/require-in-the-middle/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, "node_modules/responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, "dependencies": { "lowercase-keys": "^1.0.0" } }, - "node_modules/run-series": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz", - "integrity": "sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==", - "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/retry-as-promised": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-5.0.0.tgz", + "integrity": "sha512-6S+5LvtTl2ggBumk04hBo/4Uf6fRJUwIgunGZ7CYEBCeufGFW1Pu6ucUf/UskHeWOIsUcLOGLFXPig5tR5V1nA==" }, "node_modules/safe-buffer": { "version": "5.2.1", @@ -2378,15 +1669,11 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, "node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, "bin": { "semver": "bin/semver" } @@ -2395,6 +1682,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, "dependencies": { "semver": "^6.3.0" }, @@ -2406,64 +1694,122 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, "bin": { "semver": "bin/semver.js" } }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "node_modules/shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "node_modules/smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "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": ">= 6.0.0", - "npm": ">= 3.0.0" + "node": ">= 0.8.0" } }, - "node_modules/socks": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", - "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "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": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" + "ms": "2.0.0" } }, - "node_modules/socks-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", - "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4=" + }, + "node_modules/sequelize": { + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.19.0.tgz", + "integrity": "sha512-B3oGIdpYBERDjRDm74h7Ky67f6ZLcmBXOA7HscYObiOSo4pD7VBc9mtm44wNV7unc0uk8I1d30nbZBTQCE377A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/sequelize" + } + ], "dependencies": { - "agent-base": "6", - "debug": "4", - "socks": "^2.3.3" + "@types/debug": "^4.1.7", + "@types/validator": "^13.7.1", + "debug": "^4.3.3", + "dottie": "^2.0.2", + "inflection": "^1.13.2", + "lodash": "^4.17.21", + "moment": "^2.29.1", + "moment-timezone": "^0.5.34", + "pg-connection-string": "^2.5.0", + "retry-as-promised": "^5.0.0", + "semver": "^7.3.5", + "sequelize-pool": "^7.1.0", + "toposort-class": "^1.0.1", + "uuid": "^8.3.2", + "validator": "^13.7.0", + "wkx": "^0.5.0" + }, + "engines": { + "node": ">=10.0.0" }, + "peerDependenciesMeta": { + "ibm_db": { + "optional": true + }, + "mariadb": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-hstore": { + "optional": true + }, + "snowflake-sdk": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "tedious": { + "optional": true + } + } + }, + "node_modules/sequelize-pool": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz", + "integrity": "sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==", "engines": { - "node": ">= 6" + "node": ">= 10.0.0" } }, - "node_modules/socks-proxy-agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/sequelize/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, @@ -2476,65 +1822,108 @@ } } }, - "node_modules/socks-proxy-agent/node_modules/ms": { + "node_modules/sequelize/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/sequelize/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "node_modules/sequelize/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "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": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "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/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", "engines": { "node": ">= 0.6" } }, - "node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "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/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "dependencies": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" @@ -2544,6 +1933,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -2552,6 +1942,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -2559,21 +1950,11 @@ "node": ">=4" } }, - "node_modules/term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, "engines": { "node": ">=6" } @@ -2582,6 +1963,7 @@ "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==", + "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -2590,17 +1972,23 @@ } }, "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "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/toposort-class": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", + "integrity": "sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg=" + }, "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==", + "dev": true, "dependencies": { "nopt": "~1.0.10" }, @@ -2608,71 +1996,50 @@ "nodetouch": "bin/nodetouch.js" } }, - "node_modules/tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" - }, - "node_modules/tv4": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", - "integrity": "sha1-0CDIRvrdUMhVq7JeuuzGj8EPeWM=", + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "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": { - "prelude-ls": "~1.1.2" + "media-typer": "0.3.0", + "mime-types": "~2.1.24" }, "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "engines": { - "node": ">=8" + "node": ">= 0.6" } }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, "dependencies": { "is-typedarray": "^1.0.0" } }, "node_modules/undefsafe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", - "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", - "dependencies": { - "debug": "^2.2.0" - } - }, - "node_modules/undefsafe/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/undefsafe/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true }, "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, "dependencies": { "crypto-random-string": "^2.0.0" }, @@ -2680,14 +2047,6 @@ "node": ">=8" } }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -2697,466 +2056,228 @@ } }, "node_modules/update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, "dependencies": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", + "boxen": "^5.0.0", + "chalk": "^4.1.0", "configstore": "^5.0.1", "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", "semver-diff": "^3.1.1", "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/yeoman/update-notifier?sponsor=1" } }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "node_modules/update-notifier/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, "dependencies": { - "prepend-http": "^2.0.0" + "lru-cache": "^6.0.0" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/vizion": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vizion/-/vizion-2.2.1.tgz", - "integrity": "sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww==", - "dependencies": { - "async": "^2.6.3", - "git-node-fs": "^1.0.0", - "ini": "^1.3.5", - "js-git": "^0.7.8" + "semver": "bin/semver.js" }, "engines": { - "node": ">=4.0" - } - }, - "node_modules/vizion/node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dependencies": { - "lodash": "^4.17.14" + "node": ">=10" } }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, "dependencies": { - "string-width": "^4.0.0" + "prepend-http": "^2.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.5.tgz", - "integrity": "sha512-C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "node": ">=4" } }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "engines": { - "node": ">=8" + "node": ">= 0.4.0" } }, - "node_modules/xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", + "node_modules/validator": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", "engines": { - "node": "*" + "node": ">= 0.10" } }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/yamljs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", - "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", - "dependencies": { - "argparse": "^1.0.7", - "glob": "^7.0.5" - }, - "bin": { - "json2yaml": "bin/json2yaml", - "yaml2json": "bin/yaml2json" - } - } - }, - "dependencies": { - "@opencensus/core": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.9.tgz", - "integrity": "sha512-31Q4VWtbzXpVUd2m9JS6HEaPjlKvNMOiF7lWKNmXF84yUcgfAFL5re7/hjDmdyQbOp32oGc+RFV78jXIldVz6Q==", - "requires": { - "continuation-local-storage": "^3.2.1", - "log-driver": "^1.2.7", - "semver": "^5.5.0", - "shimmer": "^1.2.0", - "uuid": "^3.2.1" - } - }, - "@opencensus/propagation-b3": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@opencensus/propagation-b3/-/propagation-b3-0.0.8.tgz", - "integrity": "sha512-PffXX2AL8Sh0VHQ52jJC4u3T0H6wDK6N/4bg7xh4ngMYOIi13aR1kzVvX1sVDBgfGwDOkMbl4c54Xm3tlPx/+A==", - "requires": { - "@opencensus/core": "^0.0.8", - "uuid": "^3.2.1" - }, - "dependencies": { - "@opencensus/core": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.8.tgz", - "integrity": "sha512-yUFT59SFhGMYQgX0PhoTR0LBff2BEhPrD9io1jWfF/VDbakRfs6Pq60rjv0Z7iaTav5gQlttJCX2+VPxFWCuoQ==", - "requires": { - "continuation-local-storage": "^3.2.1", - "log-driver": "^1.2.7", - "semver": "^5.5.0", - "shimmer": "^1.2.0", - "uuid": "^3.2.1" - } - } - } - }, - "@pm2/agent": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-1.0.8.tgz", - "integrity": "sha512-r8mud8BhBz+a2yjlgtk+PBXUR5EQ9UKSJCs232OxfCmuBr1MZw0Mo+Kfog6WJ8OmVk99r1so9yTUK4IyrgGcMQ==", - "requires": { - "async": "~3.2.0", - "chalk": "~3.0.0", - "dayjs": "~1.8.24", - "debug": "~4.3.1", - "eventemitter2": "~5.0.1", - "fclone": "~1.0.11", - "nssocket": "0.6.0", - "pm2-axon": "~4.0.1", - "pm2-axon-rpc": "~0.7.0", - "proxy-agent": "~4.0.1", - "semver": "~7.2.0", - "ws": "~7.2.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.2.3.tgz", - "integrity": "sha512-utbW9Z7ZxVvwiIWkdOMLOR9G/NFXh2aRucghkVrEMJWuC++r3lCkBC3LwqBinyHzGMAJxY5tn6VakZGHObq5ig==" - } - } - }, - "@pm2/io": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@pm2/io/-/io-5.0.0.tgz", - "integrity": "sha512-3rToDVJaRoob5Lq8+7Q2TZFruoEkdORxwzFpZaqF4bmH6Bkd7kAbdPrI/z8X6k1Meq5rTtScM7MmDgppH6aLlw==", - "requires": { - "@opencensus/core": "0.0.9", - "@opencensus/propagation-b3": "0.0.8", - "async": "~2.6.1", - "debug": "~4.3.1", - "eventemitter2": "^6.3.1", - "require-in-the-middle": "^5.0.0", - "semver": "6.3.0", - "shimmer": "^1.2.0", - "signal-exit": "^3.0.3", - "tslib": "1.9.3" - }, - "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "eventemitter2": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz", - "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" } }, - "@pm2/js-api": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.6.7.tgz", - "integrity": "sha512-jiJUhbdsK+5C4zhPZNnyA3wRI01dEc6a2GhcQ9qI38DyIk+S+C8iC3fGjcjUbt/viLYKPjlAaE+hcT2/JMQPXw==", - "requires": { - "async": "^2.6.3", - "axios": "^0.21.0", - "debug": "~4.3.1", - "eventemitter2": "^6.3.1", - "ws": "^7.0.0" + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wkx": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", + "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==", "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "eventemitter2": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz", - "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } + "@types/node": "*" } }, - "@pm2/pm2-version-check": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz", - "integrity": "sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==", - "requires": { - "debug": "^4.3.1" + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" } }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + }, + "dependencies": { "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true }, "@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, "requires": { "defer-to-connect": "^1.0.1" } }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + "@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "requires": { + "@types/ms": "*" + } + }, + "@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" + }, + "@types/node": { + "version": "17.0.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.31.tgz", + "integrity": "sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==" + }, + "@types/validator": { + "version": "13.7.2", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.2.tgz", + "integrity": "sha512-KFcchQ3h0OPQgFirBRPZr5F/sVjxZsOrQHedj3zi8AH3Zv/hOLx2OLR4hxR5HcfoU+33n69ZuOfzthKVdMoTiw==" }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "amp": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz", - "integrity": "sha1-at+NWKdPNh6CwfqNOJwHnhOfxH0=" + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true }, - "amp-message": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz", - "integrity": "sha1-p48cmJlQh602GSpBKY5NtJ49/EU=", + "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": { - "amp": "0.3.1" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" } }, "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } + "string-width": "^4.1.0" } }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" - }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -3165,102 +2286,84 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - }, - "dependencies": { - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - } - } - }, - "ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "requires": { - "tslib": "^2.0.1" - }, - "dependencies": { - "tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" - } - } - }, - "async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" - }, - "async-listener": { - "version": "0.6.10", - "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz", - "integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==", - "requires": { - "semver": "^5.3.0", - "shimmer": "^1.1.0" - } - }, - "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", - "requires": { - "follow-redirects": "^1.10.0" - } + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - }, - "blessed": { - "version": "0.1.81", - "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz", - "integrity": "sha1-+WLWh+wsNpVwrnGvhDJW5tDKESk=" + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true }, - "bodec": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bodec/-/bodec-0.1.0.tgz", - "integrity": "sha1-vIUVVUMPI8n3ZQp172TGqUw0GMw=" + "body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "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.10.3", + "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } }, "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, "requires": { "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" } }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3270,24 +2373,21 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { "fill-range": "^7.0.1" } }, - "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==" - }, "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, "cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -3302,6 +2402,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, "requires": { "pump": "^3.0.0" } @@ -3309,19 +2410,31 @@ "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true } } }, + "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" + } + }, "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3330,60 +2443,53 @@ "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, - "charm": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", - "integrity": "sha1-BsIe7RobBq62dVPNxT4jJ0usIpY=" - }, "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", + "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.5.0" + "readdirp": "~3.6.0" } }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true }, "cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, - "cli-tableau": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cli-tableau/-/cli-tableau-2.0.1.tgz", - "integrity": "sha512-he+WTicka9cl0Fg/y+YyxcN6/bfQ/1O3QmgxRXDhABKqLzvoOSM4fMzp39uMyLBulAFuywD2N7UaoQE7WaADxQ==", - "requires": { - "chalk": "3.0.0" - } + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, "requires": { "mimic-response": "^1.0.0" } @@ -3392,6 +2498,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -3399,22 +2506,20 @@ "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==" - }, - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, "requires": { "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", @@ -3424,52 +2529,40 @@ "xdg-basedir": "^4.0.0" } }, - "continuation-local-storage": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz", - "integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==", + "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": { - "async-listener": "^0.6.0", - "emitter-listener": "^1.1.1" + "safe-buffer": "5.2.1" } }, - "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=" + "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==" }, - "cron": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz", - "integrity": "sha512-Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==", - "requires": { - "moment-timezone": "^0.5.x" - } + "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": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" - }, - "culvert": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz", - "integrity": "sha1-lQL18BVKLVoioCPnn3HMk2+m728=" - }, - "data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==" - }, - "dayjs": { - "version": "1.8.36", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz", - "integrity": "sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==" + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true }, "debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "requires": { "ms": "^2.1.1" } @@ -3478,6 +2571,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, "requires": { "mimic-response": "^1.0.0" } @@ -3485,37 +2579,35 @@ "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=" + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true }, - "degenerator": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-2.2.0.tgz", - "integrity": "sha512-aiQcQowF01RxFI4ZLFMpzyotbQonhNpBao6dkI8JPk5a+hmSjR5ErHp2CQySmQe8os3VBqLCIh87nDBgZXvsmg==", - "requires": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0" - } + "denque": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==" }, "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "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==" }, "dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, "requires": { "is-obj": "^2.0.0" } @@ -3525,224 +2617,221 @@ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==" }, + "dottie": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz", + "integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg==" + }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true }, - "emitter-listener": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz", - "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==", - "requires": { - "shimmer": "^1.2.0" - } + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, "requires": { "once": "^1.4.0" } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "requires": { - "ansi-colors": "^4.1.1" - } - }, "escape-goat": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "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.10.3", + "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "eventemitter2": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", - "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fclone": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz", - "integrity": "sha1-EOhdo4v+p/xZk0HClu4ddyZu5kA=" - }, - "file-uri-to-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", - "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==" - }, "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==", + "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, - "follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==" - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } + "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, "fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "optional": true }, - "ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", - "requires": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - } - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", "requires": { - "pump": "^3.0.0" + "is-property": "^1.0.2" } }, - "get-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", - "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "requires": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" } }, - "git-node-fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/git-node-fs/-/git-node-fs-1.0.0.tgz", - "integrity": "sha1-SbIV4kLr5Dqkx1Ybu6SZUhdSCA8=" - }, - "git-sha1": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/git-sha1/-/git-sha1-0.1.2.tgz", - "integrity": "sha1-WZrBkrcYdYJeE6RF86bgURjC90U=" - }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, "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" + "pump": "^3.0.0" } }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "requires": { "is-glob": "^4.0.1" } }, "global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, "requires": { - "ini": "1.3.7" + "ini": "2.0.0" } }, "got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, "requires": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", @@ -3758,9 +2847,10 @@ } }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true }, "has": { "version": "1.0.3", @@ -3773,77 +2863,36 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, "has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true }, "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "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": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" } }, "iconv-lite": { @@ -3857,26 +2906,25 @@ "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true }, - "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" - } + "inflection": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.2.tgz", + "integrity": "sha512-cmZlljCRTBFouT8UzMzrGcVEvkv6D/wBdcdKG7J1QH5cXjtU75Dm+P27v9EKu/Y43UYyCJd1WC4zLebRrC8NBw==" }, "inherits": { "version": "2.0.4", @@ -3884,19 +2932,21 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "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-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==", + "dev": true, "requires": { "binary-extensions": "^2.0.0" } @@ -3905,108 +2955,94 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, "requires": { "ci-info": "^2.0.0" } }, - "is-core-module": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", - "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", - "requires": { - "has": "^1.0.3" - } - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" } }, "is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true }, "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true }, "is-yarn-global": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "js-git": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/js-git/-/js-git-0.7.8.tgz", - "integrity": "sha1-UvplWrYYd9bxB578ZTS1VPMeVEQ=", - "requires": { - "bodec": "^0.1.0", - "culvert": "^0.1.2", - "git-sha1": "^0.1.2", - "pako": "^0.2.5" - } + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true }, "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true }, "keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, "requires": { "json-buffer": "3.0.0" } @@ -4015,51 +3051,40 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, "requires": { "package-json": "^6.3.0" } }, - "lazy": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", - "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=" - }, - "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" - } - }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==" + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true }, "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" } }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, "requires": { "semver": "^6.0.0" }, @@ -4067,446 +3092,276 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "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": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha1-EUyUlnPiqKNenTV4hSeqN7Z52is=" - }, - "moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" - }, - "moment-timezone": { - "version": "0.5.33", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.33.tgz", - "integrity": "sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==", - "requires": { - "moment": ">= 2.9.0" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "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" - } - }, - "netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" - }, - "nodemon": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz", - "integrity": "sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==", - "requires": { - "chokidar": "^3.2.2", - "debug": "^3.2.6", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.7", - "semver": "^5.7.1", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.3", - "update-notifier": "^4.1.0" - } - }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "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==" - }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" - }, - "nssocket": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz", - "integrity": "sha1-Wflvb/MhVm8zxw99vu7N/cBxVPo=", - "requires": { - "eventemitter2": "~0.4.14", - "lazy": "~1.0.11" - }, - "dependencies": { - "eventemitter2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=" + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, - "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" - } + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, - "pac-proxy-agent": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-4.1.0.tgz", - "integrity": "sha512-ejNgYm2HTXSIYX9eFlkvqFp8hyJ374uDf0Zq5YUAifiSh1D6fo+iBivQZirGvVv8dCYUsLhmLBRhlAYvBKI5+Q==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^4.1.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, - "pac-resolver": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-4.2.0.tgz", - "integrity": "sha512-rPACZdUyuxT5Io/gFKUeeZFfE5T7ve7cAkE5TUZRRfuKP0u5Hocwe48X7ZEm6mYB+bTB0Qf+xlVlA/RM/i6RCQ==", - "requires": { - "degenerator": "^2.2.0", - "ip": "^1.1.5", - "netmask": "^2.0.1" - } + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "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": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } + "mime-db": "1.52.0" } }, - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" - }, - "path-is-absolute": { + "mimic-response": { "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==" - }, - "picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==" - }, - "pidusage": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-2.0.21.tgz", - "integrity": "sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==", - "requires": { - "safe-buffer": "^5.2.1" - } + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true }, - "pm2": { - "version": "4.5.6", - "resolved": "https://registry.npmjs.org/pm2/-/pm2-4.5.6.tgz", - "integrity": "sha512-4J5q704Xl6VmpmQhXFGMJL4kXyyQw3AZM1FE9vRxhS3LiDI/+WVBtOM6pqJ4g/RKW+AUjEkc23i/DCC4BVenDA==", - "requires": { - "@pm2/agent": "~1.0.8", - "@pm2/io": "~5.0.0", - "@pm2/js-api": "~0.6.7", - "@pm2/pm2-version-check": "latest", - "async": "~3.2.0", - "blessed": "0.1.81", - "chalk": "3.0.0", - "chokidar": "^3.5.1", - "cli-tableau": "^2.0.0", - "commander": "2.15.1", - "cron": "1.8.2", - "dayjs": "~1.8.25", - "debug": "^4.3.1", - "enquirer": "2.3.6", - "eventemitter2": "5.0.1", - "fclone": "1.0.11", - "mkdirp": "1.0.4", - "needle": "2.4.0", - "pidusage": "2.0.21", - "pm2-axon": "~4.0.1", - "pm2-axon-rpc": "~0.7.0", - "pm2-deploy": "~1.0.2", - "pm2-multimeter": "^0.1.2", - "promptly": "^2", - "ps-list": "6.3.0", - "semver": "^7.2", - "source-map-support": "0.5.19", - "sprintf-js": "1.1.2", - "vizion": "2.2.1", - "yamljs": "0.3.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" } }, - "pm2-axon": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.1.tgz", - "integrity": "sha512-kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg==", + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "moment": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" + }, + "moment-timezone": { + "version": "0.5.34", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz", + "integrity": "sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==", "requires": { - "amp": "~0.3.1", - "amp-message": "~0.1.1", - "debug": "^4.3.1", - "escape-string-regexp": "^4.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "moment": ">= 2.9.0" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "mysql2": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz", + "integrity": "sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==", + "requires": { + "denque": "^2.0.1", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^4.0.0", + "lru-cache": "^6.0.0", + "named-placeholders": "^1.1.2", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "requires": { - "ms": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3.0.0" } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, - "pm2-axon-rpc": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz", - "integrity": "sha512-FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw==", + "named-placeholders": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz", + "integrity": "sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==", "requires": { - "debug": "^4.3.1" + "lru-cache": "^4.1.3" }, "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "requires": { - "ms": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, - "ms": { + "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" } } }, - "pm2-deploy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-1.0.2.tgz", - "integrity": "sha512-YJx6RXKrVrWaphEYf++EdOOx9EH18vM8RSZN/P1Y+NokTKqYAca/ejXwVLyiEpNju4HPZEk3Y2uZouwMqUlcgg==", + "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.16", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", + "integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==", + "dev": true, "requires": { - "run-series": "^1.1.8", - "tv4": "^1.3.0" + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" } }, - "pm2-multimeter": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz", - "integrity": "sha1-Gh5VFT1BoFU0zqI8/oYKuqDrSs4=", + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, "requires": { - "charm": "~0.1.1" + "abbrev": "1" } }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true }, - "promptly": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz", - "integrity": "sha1-KhP6BjaIoqWYOxYf/wEIoH0m/HQ=", + "object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" + }, + "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" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, "requires": { - "read": "^1.0.4" + "wrappy": "1" } }, - "proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-4.0.1.tgz", - "integrity": "sha512-ODnQnW2jc/FUVwHHuaZEfN5otg/fMbvMxz9nMSUQfJ9JU7q2SZvSULSsjLloVgJOiv9yhc8GlNMKc4GkFmcVEA==", + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, "requires": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^4.1.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" }, "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, - "ps-list": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-6.3.0.tgz", - "integrity": "sha512-qau0czUSB0fzSlBOQt0bo+I2v6R+xiQdj78e1BR/Qjfl5OHWJ/urXi8+ilw1eHe+5hSeDI1wrwVTgDp2wst4oA==" + "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=" + }, + "pg-connection-string": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", + "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "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" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "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==" + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -4516,17 +3371,31 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, "requires": { "escape-goat": "^2.0.0" } }, + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "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.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "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.0", - "http-errors": "1.7.3", + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } @@ -4535,36 +3404,27 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" - } - }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "requires": { - "mute-stream": "~0.0.4" - } - }, - "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" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + } } }, "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "requires": { "picomatch": "^2.2.1" } @@ -4573,6 +3433,7 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, "requires": { "rc": "^1.2.8" } @@ -4581,56 +3442,24 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, "requires": { "rc": "^1.2.8" } }, - "require-in-the-middle": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.1.0.tgz", - "integrity": "sha512-M2rLKVupQfJ5lf9OvqFGIT+9iVLnTmjgbOmpil12hiSQNn5zJTKGPoIisETNjfK+09vP3rpm1zJajmErpr2sEQ==", - "requires": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.12.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, "responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, "requires": { "lowercase-keys": "^1.0.0" } }, - "run-series": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz", - "integrity": "sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==" + "retry-as-promised": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-5.0.0.tgz", + "integrity": "sha512-6S+5LvtTl2ggBumk04hBo/4Uf6fRJUwIgunGZ7CYEBCeufGFW1Pu6ucUf/UskHeWOIsUcLOGLFXPig5tR5V1nA==" }, "safe-buffer": { "version": "5.2.1", @@ -4642,20 +3471,17 @@ "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==" - }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true }, "semver-diff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, "requires": { "semver": "^6.3.0" }, @@ -4663,53 +3489,80 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==" - }, - "socks": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", - "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" + "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + } } }, - "socks-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", - "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", - "requires": { - "agent-base": "6", - "debug": "4", - "socks": "^2.3.3" + "seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4=" + }, + "sequelize": { + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.19.0.tgz", + "integrity": "sha512-B3oGIdpYBERDjRDm74h7Ky67f6ZLcmBXOA7HscYObiOSo4pD7VBc9mtm44wNV7unc0uk8I1d30nbZBTQCE377A==", + "requires": { + "@types/debug": "^4.1.7", + "@types/validator": "^13.7.1", + "debug": "^4.3.3", + "dottie": "^2.0.2", + "inflection": "^1.13.2", + "lodash": "^4.17.21", + "moment": "^2.29.1", + "moment-timezone": "^0.5.34", + "pg-connection-string": "^2.5.0", + "retry-as-promised": "^5.0.0", + "semver": "^7.3.5", + "sequelize-pool": "^7.1.0", + "toposort-class": "^1.0.1", + "uuid": "^8.3.2", + "validator": "^13.7.0", + "wkx": "^0.5.0" }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } @@ -4718,248 +3571,278 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" } } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "sequelize-pool": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz", + "integrity": "sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==" }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "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": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" } }, - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "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" + } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "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=" + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "requires": { "has-flag": "^3.0.0" } }, - "term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" - }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true }, "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==", + "dev": true, "requires": { "is-number": "^7.0.0" } }, "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "toposort-class": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", + "integrity": "sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg=" }, "touch": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, "requires": { "nopt": "~1.0.10" } }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" - }, - "tv4": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", - "integrity": "sha1-0CDIRvrdUMhVq7JeuuzGj8EPeWM=" + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "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": { - "prelude-ls": "~1.1.2" + "media-typer": "0.3.0", + "mime-types": "~2.1.24" } }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" - }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, "requires": { "is-typedarray": "^1.0.0" } }, "undefsafe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", - "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", - "requires": { - "debug": "^2.2.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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, "requires": { "crypto-random-string": "^2.0.0" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, "requires": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", + "boxen": "^5.0.0", + "chalk": "^4.1.0", "configstore": "^5.0.1", "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", "semver-diff": "^3.1.1", "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } } }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, "requires": { "prepend-http": "^2.0.0" } }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, - "vizion": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vizion/-/vizion-2.2.1.tgz", - "integrity": "sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww==", - "requires": { - "async": "^2.6.3", - "git-node-fs": "^1.0.0", - "ini": "^1.3.5", - "js-git": "^0.7.8" - }, - "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - } - } + "validator": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, "requires": { "string-width": "^4.0.0" } }, - "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==" + "wkx": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", + "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==", + "requires": { + "@types/node": "*" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true }, "write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, "requires": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -4967,35 +3850,16 @@ "typedarray-to-buffer": "^3.1.5" } }, - "ws": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.5.tgz", - "integrity": "sha512-C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA==", - "requires": {} - }, "xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" - }, - "xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "yamljs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", - "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", - "requires": { - "argparse": "^1.0.7", - "glob": "^7.0.5" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } } diff --git a/package.json b/package.json index 67c898c85..09ae0b881 100755 --- a/package.json +++ b/package.json @@ -2,15 +2,20 @@ "name": "nodeinitialdemo", "version": "1.0.0", "description": "", - "main": "index.js", + "main": "app.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "start": "node app.js", + "dev": "nodemon app.js" }, - "author": "", - "license": "ISC", + "author": "Victor Machado", + "license": "MIT", "dependencies": { "dotenv": "^9.0.2", - "nodemon": "^2.0.7", - "pm2": "^4.5.6" + "express": "^4.18.1", + "mysql2": "^2.3.3", + "sequelize": "^6.19.0" + }, + "devDependencies": { + "nodemon": "^2.0.16" } } From bf9d405f6cc5faae686e7c11eea53b9417f0b6bb Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Tue, 10 May 2022 10:32:28 +0200 Subject: [PATCH 05/24] database in separate file --- .env-template | 7 +++++-- app.js | 15 +++++++++++++++ config/database.js | 9 +++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 config/database.js diff --git a/.env-template b/.env-template index 80411cc29..b8792640d 100644 --- a/.env-template +++ b/.env-template @@ -1,4 +1,7 @@ DB_HOST=localhost -DB_PORT=5000 +DB_PORT=3306 DB_USER=root -DB_PASS=1234 \ No newline at end of file +DB_PASS=1234 +DB_NAME=machado_dices + +API_PORT=5000 diff --git a/app.js b/app.js index e69de29bb..39e6a1356 100644 --- a/app.js +++ b/app.js @@ -0,0 +1,15 @@ +const express = require('express'); +const db = require('./config/database'); + +require('dotenv').config() + +db.authenticate() + .then(() => console.log('Database connected...')) + .catch(err => console.log('Error: ' + err)) + +const app = express(); + +app.get('/', (req, res) => res.send("INDEX")); + +const PORT = process.env.API_PORT || 3000; +app.listen(PORT, console.log(`Server started on port ${PORT}`)); \ No newline at end of file diff --git a/config/database.js b/config/database.js new file mode 100644 index 000000000..5dfd76f1d --- /dev/null +++ b/config/database.js @@ -0,0 +1,9 @@ +const Sequelize = require('sequelize'); + +require('dotenv').config() + +module.exports = new Sequelize(process.env.DB_NAME, process.env.DB_USER, process.env.DB_PASS, { + host: process.env.DB_HOST, + dialect: 'mysql', + port: process.env.DB_PORT + }); From 2dea08e14bb8651d8ba50565e56afe8645de538a Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Tue, 10 May 2022 13:12:27 +0200 Subject: [PATCH 06/24] addPlayer and getPlayer added --- app.js | 7 ++++++- controller/addPlayer.js | 34 ++++++++++++++++++++++++++++++++++ controller/getPlayers.js | 23 +++++++++++++++++++++++ models/dices.js | 39 +++++++++++++++++++++++++++++++++++++++ routes/invalid.js | 8 ++++++++ routes/players.js | 16 ++++++++++++++++ startup/routes.js | 10 ++++++++++ 7 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 controller/addPlayer.js create mode 100644 controller/getPlayers.js create mode 100644 models/dices.js create mode 100644 routes/invalid.js create mode 100644 routes/players.js create mode 100644 startup/routes.js diff --git a/app.js b/app.js index 39e6a1356..772f0dd9e 100644 --- a/app.js +++ b/app.js @@ -9,7 +9,12 @@ db.authenticate() const app = express(); -app.get('/', (req, res) => res.send("INDEX")); +// Routes +require('./startup/routes')(app); + +app.use(function(req,res){ + res.send(404); +}); const PORT = process.env.API_PORT || 3000; app.listen(PORT, console.log(`Server started on port ${PORT}`)); \ No newline at end of file diff --git a/controller/addPlayer.js b/controller/addPlayer.js new file mode 100644 index 000000000..f4b1d7567 --- /dev/null +++ b/controller/addPlayer.js @@ -0,0 +1,34 @@ + +const Players = require('../models/dices'); + +module.exports = async function addPlayers(req, res) { + + if (!req.body || !req.body.username) { + return res.status(400).send({ status: "fail", message: "username not found"}); // 400 - Bad request + } + + try { + + Players.create({ + username: req.body.username + }) + .then(player => { + console.log("new player") + console.log(player) + res.send({ + status: "success", + data: { + username: req.body.username, + } + }); + res.redirect('/players') + }) + .catch(err => console.log(err)) + + } catch (err) { + res.status(500).send({ + status: 'error', + message: err.message + }) + } +} \ No newline at end of file diff --git a/controller/getPlayers.js b/controller/getPlayers.js new file mode 100644 index 000000000..61eb6310c --- /dev/null +++ b/controller/getPlayers.js @@ -0,0 +1,23 @@ + +const Players = require('../models/dices'); + +module.exports = async function getPlayers(req, res) { + + // Query all players + Players.findAll() + .then(players => { + //Get id and usernames + let playerData = players.map(i => { + return {id: i.dataValues.id, username:i.dataValues.username} + }); + + res.status(200).send({ + status: "success", + data: { + players: playerData + } + }); + + }) + .catch(err => console.log(err)) +} \ No newline at end of file diff --git a/models/dices.js b/models/dices.js new file mode 100644 index 000000000..dab747391 --- /dev/null +++ b/models/dices.js @@ -0,0 +1,39 @@ +const Sequelize = require('sequelize'); +const db = require('../config/database'); + +const Players = db.define('players', { + username: { + type: Sequelize.STRING, + defaultValue: null, + allowNull: true + } +}) + +// const Rolls = db.define('rolls', { +// dice1: { +// type: Sequelize.INTEGER, +// allowNull: false +// }, +// dice2: { +// type: Sequelize.INTEGER, +// allowNull: false +// }, +// player_id: { +// type: Sequelize.INTEGER, +// references: { +// model: 'players', +// key: 'id', +// } +// } +// }) + +// Players.hasMany(Rolls); // one-to-many relationship + +// (async () => { +// await Players.sync(); +// await Rolls.sync(); +// })().catch(err => { +// console.error(err); +// }); + +module.exports = Players; diff --git a/routes/invalid.js b/routes/invalid.js new file mode 100644 index 000000000..368b6f2d3 --- /dev/null +++ b/routes/invalid.js @@ -0,0 +1,8 @@ +const express = require("express"); +const router = express.Router(); + +router.get("*", (req, res) => { + res.status(404).send({ status: "fail", message: "PAGE NOT FOUND"}); +}); + +module.exports = router; diff --git a/routes/players.js b/routes/players.js new file mode 100644 index 000000000..536073999 --- /dev/null +++ b/routes/players.js @@ -0,0 +1,16 @@ +const express = require('express'); +const router = express.Router(); +const getPlayers = require('../controller/getPlayers'); +const addPlayer = require('../controller/addPlayer'); + +router.post('/', addPlayer); +router.put('/', (req, res) => res.send('PUT /players')); +router.post('/:id/games', (req, res) => res.send('POST /players/:id/games')); +router.delete('/:id/games', (req, res) => res.send('DELETE /players/:id/games')); +router.get('/', getPlayers); +router.get('/:id/games', (req, res) => res.send('GET /players/:id/games')); +router.get('/ranking', (req, res) => res.send('GET /players/ranking')); +router.get('/ranking/loser', (req, res) => res.send('GET /players/ranking/loser')); +router.get('/ranking/winner', (req, res) => res.send('GET /players/ranking/winner')); + +module.exports = router; diff --git a/startup/routes.js b/startup/routes.js new file mode 100644 index 000000000..9d979d39e --- /dev/null +++ b/startup/routes.js @@ -0,0 +1,10 @@ +const express = require('express'); + +const players = require('../routes/players'); +const invalid = require('../routes/invalid'); + +module.exports = app => { + app.use(express.json()); + app.use('/players', players); + app.use(invalid); +} \ No newline at end of file From 12dfb0a4b4a6ee4f9deaabdb375e6ea603e8bdee Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Tue, 10 May 2022 13:40:52 +0200 Subject: [PATCH 07/24] check if user already exists --- controller/addPlayer.js | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/controller/addPlayer.js b/controller/addPlayer.js index f4b1d7567..964f7fb9c 100644 --- a/controller/addPlayer.js +++ b/controller/addPlayer.js @@ -9,21 +9,24 @@ module.exports = async function addPlayers(req, res) { try { - Players.create({ - username: req.body.username - }) - .then(player => { - console.log("new player") - console.log(player) - res.send({ - status: "success", - data: { - username: req.body.username, - } - }); - res.redirect('/players') - }) - .catch(err => console.log(err)) + const alreadyRegistered = await Players.findOne({ + where: { username: req.body.username }, + }); + + if(alreadyRegistered){ + return res.status(400).send({ status: "fail", message: "username already registered"}); // 400 - Bad request + } + + let player = await Players.create({ username: req.body.username }) + + res.status(200).send({ + status: "success", + data: { + id: player.id, + username: player.username, + } + }); + } catch (err) { res.status(500).send({ From f965795b79843e3a3dba85fbbf244dc349d6ec35 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Tue, 10 May 2022 13:43:15 +0200 Subject: [PATCH 08/24] postman collection --- Postman 4.2.postman_collection.json | 36 +++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 Postman 4.2.postman_collection.json diff --git a/Postman 4.2.postman_collection.json b/Postman 4.2.postman_collection.json new file mode 100644 index 000000000..ac10f123a --- /dev/null +++ b/Postman 4.2.postman_collection.json @@ -0,0 +1,36 @@ +{ + "info": { + "_postman_id": "85bb1650-5b12-4d5f-beee-9fc7a618f7ce", + "name": "Postman 4.2", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "getPlayers", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:5000/", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "5000", + "path": [ + "" + ] + } + }, + "response": [] + }, + { + "name": "addPlayer", + "request": { + "method": "GET", + "header": [] + }, + "response": [] + } + ] +} \ No newline at end of file From 6f9431412b6e0edac266cd6708064e01fecf8cbd Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Tue, 10 May 2022 14:54:17 +0200 Subject: [PATCH 09/24] del unnecessary files --- ecosystem.config.js | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100755 ecosystem.config.js diff --git a/ecosystem.config.js b/ecosystem.config.js deleted file mode 100755 index 2213b9069..000000000 --- a/ecosystem.config.js +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = { - apps : [{ - script: 'index.js', - watch: '.' - }, { - script: './service-worker/', - watch: ['./service-worker'] - }], - - deploy : { - production : { - user : 'SSH_USERNAME', - host : 'SSH_HOSTMACHINE', - ref : 'origin/master', - repo : 'GIT_REPOSITORY', - path : 'DESTINATION_PATH', - 'pre-deploy-local': '', - 'post-deploy' : 'npm install && pm2 reload ecosystem.config.js --env production', - 'pre-setup': '' - } - } -}; From 1b8090b6b378d637c31b1ebc27445a74a787ab6c Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Tue, 10 May 2022 21:04:26 +0200 Subject: [PATCH 10/24] more entry points --- app.js | 9 -------- config/database.js | 19 ++++++++++++++-- controller/addPlayer.js | 11 +++++----- controller/getPlayers.js | 33 ++++++++++++++-------------- controller/rollDices.js | 32 +++++++++++++++++++++++++++ controller/updatePlayer.js | 44 ++++++++++++++++++++++++++++++++++++++ models/dices.js | 44 ++++++++++++++++---------------------- routes/players.js | 7 ++++-- 8 files changed, 139 insertions(+), 60 deletions(-) create mode 100644 controller/rollDices.js create mode 100644 controller/updatePlayer.js diff --git a/app.js b/app.js index 772f0dd9e..6869ccf2b 100644 --- a/app.js +++ b/app.js @@ -1,20 +1,11 @@ const express = require('express'); -const db = require('./config/database'); require('dotenv').config() -db.authenticate() - .then(() => console.log('Database connected...')) - .catch(err => console.log('Error: ' + err)) - const app = express(); // Routes require('./startup/routes')(app); -app.use(function(req,res){ - res.send(404); -}); - const PORT = process.env.API_PORT || 3000; app.listen(PORT, console.log(`Server started on port ${PORT}`)); \ No newline at end of file diff --git a/config/database.js b/config/database.js index 5dfd76f1d..378f654b9 100644 --- a/config/database.js +++ b/config/database.js @@ -1,9 +1,24 @@ const Sequelize = require('sequelize'); +const mysql = require('mysql2/promise'); -require('dotenv').config() +require('dotenv').config(); +(async ()=>{ + // Create database if not exist + const connection = await mysql.createConnection({ + host: process.env.DB_HOST, + user: process.env.DB_USER, + password: process.env.DB_PASS }); + + const con = await connection.connect(); + await connection.query(`CREATE DATABASE IF NOT EXISTS \`${process.env.DB_NAME}\`;`); + console.log(`Database ${process.env.DB_NAME} (re)created`); + await connection.end(); +})(); + +// Export connection to database module.exports = new Sequelize(process.env.DB_NAME, process.env.DB_USER, process.env.DB_PASS, { host: process.env.DB_HOST, dialect: 'mysql', port: process.env.DB_PORT - }); + }); diff --git a/controller/addPlayer.js b/controller/addPlayer.js index 964f7fb9c..ce67781a8 100644 --- a/controller/addPlayer.js +++ b/controller/addPlayer.js @@ -1,14 +1,14 @@ -const Players = require('../models/dices'); +const {Players} = require ('../models/dices'); module.exports = async function addPlayers(req, res) { - if (!req.body || !req.body.username) { - return res.status(400).send({ status: "fail", message: "username not found"}); // 400 - Bad request - } - try { + if (!req.body.username) { + return res.status(400).send({ status: "fail", message: "username property not found"}); // 400 - Bad request + } + const alreadyRegistered = await Players.findOne({ where: { username: req.body.username }, }); @@ -27,7 +27,6 @@ module.exports = async function addPlayers(req, res) { } }); - } catch (err) { res.status(500).send({ status: 'error', diff --git a/controller/getPlayers.js b/controller/getPlayers.js index 61eb6310c..dba107230 100644 --- a/controller/getPlayers.js +++ b/controller/getPlayers.js @@ -1,23 +1,24 @@ - -const Players = require('../models/dices'); +const {Players} = require ('../models/dices'); module.exports = async function getPlayers(req, res) { + try { + let players = await Players.findAll(); - // Query all players - Players.findAll() - .then(players => { - //Get id and usernames - let playerData = players.map(i => { - return {id: i.dataValues.id, username:i.dataValues.username} - }); + let playersData = players.map(i => { + return {id: i.dataValues.id, username:i.dataValues.username} + }); - res.status(200).send({ - status: "success", - data: { - players: playerData - } - }); + res.status(200).send({ + status: "success", + data: { + players: playersData + } + }); + } catch (err) { + res.status(500).send({ + status: 'error', + message: err.message }) - .catch(err => console.log(err)) + } } \ No newline at end of file diff --git a/controller/rollDices.js b/controller/rollDices.js new file mode 100644 index 000000000..ef375eee5 --- /dev/null +++ b/controller/rollDices.js @@ -0,0 +1,32 @@ +const {Players, Rolls} = require ('../models/dices'); + +module.exports = async function (req, res) { + try { + // Check if user exists + const user = await Players.findOne({ + where: { username: req.params.id }, + }); + if(!user) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request + + const roll = { + playerId: user.id, + dice1: Math.floor(Math.random()*(6-1+1)+1), + dice2: Math.floor(Math.random()*(6-1+1)+1) //Math.floor(Math.random()*(max-min+1)+min) + }; + + await Rolls.create(roll) + + res.status(200).send({ + status: "success", + data: { + roll + } + }); + + } catch (err) { + res.status(500).send({ + status: 'error', + message: err.message + }) + } +}; \ No newline at end of file diff --git a/controller/updatePlayer.js b/controller/updatePlayer.js new file mode 100644 index 000000000..36bb4ffb0 --- /dev/null +++ b/controller/updatePlayer.js @@ -0,0 +1,44 @@ +const {Players} = require ('../models/dices'); + +module.exports = async function updatePlayer(req, res) { + try { + // Check if username is provided + if (!req.body.username) return res.status(400).send({ status: "fail", message: "username property not found"}); // 400 - Bad request + // Check if new username is provided + if (!req.body.newUsername) return res.status(400).send({ status: "fail", message: "newUsername property not found"}); // 400 - Bad request + // Check if username and new username are different + if (req.body.username === req.body.newUsername) return res.status(400).send({ status: "fail", message: "newUsername must be different"}); // 400 - Bad request + + + // Check if username is already registered + const usernameRegistered = await Players.findOne({ + where: { username: req.body.username }, + }); + if(!usernameRegistered) return res.status(400).send({ status: "fail", message: "username not found"}); // 400 - Bad request + + // Check if new username is already registered + const newUsernameRegistered = await Players.findOne({ + where: { username: req.body.newUsername }, + }); + if(newUsernameRegistered) return res.status(400).send({ status: "fail", message: "newUsername already registered"}); // 400 - Bad request + + // Update record + await Players.update( + { username: req.body.newUsername}, + { where: { username: req.body.username } } + ); + + res.status(200).send({ + status: "success", + data: { + username: req.body.newUsername + } + }); + + } catch (err) { + res.status(500).send({ + status: 'error', + message: err.message + }) + } +}; diff --git a/models/dices.js b/models/dices.js index dab747391..63af8fff1 100644 --- a/models/dices.js +++ b/models/dices.js @@ -9,31 +9,25 @@ const Players = db.define('players', { } }) -// const Rolls = db.define('rolls', { -// dice1: { -// type: Sequelize.INTEGER, -// allowNull: false -// }, -// dice2: { -// type: Sequelize.INTEGER, -// allowNull: false -// }, -// player_id: { -// type: Sequelize.INTEGER, -// references: { -// model: 'players', -// key: 'id', -// } -// } -// }) +const Rolls = db.define('rolls', { + dice1: { + type: Sequelize.INTEGER, + allowNull: false + }, + dice2: { + type: Sequelize.INTEGER, + allowNull: false + } +}) + +Players.hasMany(Rolls); // one-to-many relationship -// Players.hasMany(Rolls); // one-to-many relationship +Players.sync() +.then() +.catch(err => console.log(err)); -// (async () => { -// await Players.sync(); -// await Rolls.sync(); -// })().catch(err => { -// console.error(err); -// }); +Rolls.sync() +.then() +.catch(err => console.log(err)); -module.exports = Players; +module.exports = {Players, Rolls}; diff --git a/routes/players.js b/routes/players.js index 536073999..de1f14415 100644 --- a/routes/players.js +++ b/routes/players.js @@ -1,11 +1,14 @@ const express = require('express'); const router = express.Router(); + const getPlayers = require('../controller/getPlayers'); const addPlayer = require('../controller/addPlayer'); +const updatePlayer = require('../controller/updatePlayer'); +const rollDices = require('../controller/rollDices'); router.post('/', addPlayer); -router.put('/', (req, res) => res.send('PUT /players')); -router.post('/:id/games', (req, res) => res.send('POST /players/:id/games')); +router.put('/', updatePlayer); +router.post('/:id/games', rollDices); router.delete('/:id/games', (req, res) => res.send('DELETE /players/:id/games')); router.get('/', getPlayers); router.get('/:id/games', (req, res) => res.send('GET /players/:id/games')); From 9605b7913701b4b1dc02df68c59c92ba832b646f Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Tue, 10 May 2022 21:19:51 +0200 Subject: [PATCH 11/24] deleteRolls and getRolls --- controller/deleteRolls.js | 29 +++++++++++++++++++++++++++++ controller/getRolls.js | 29 +++++++++++++++++++++++++++++ routes/players.js | 6 ++++-- 3 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 controller/deleteRolls.js create mode 100644 controller/getRolls.js diff --git a/controller/deleteRolls.js b/controller/deleteRolls.js new file mode 100644 index 000000000..74ecad632 --- /dev/null +++ b/controller/deleteRolls.js @@ -0,0 +1,29 @@ +const {Players, Rolls} = require('../models/dices'); + +module.exports = async function (req, res) { + try { + // Check if user exists + const user = await Players.findOne({ + where: { username: req.params.id }, + }); + if(!user) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request + + let dat = await Rolls.destroy({ + where: { playerId: user.id }, + }); + + res.status(200).send({ + status: "success", + data: { + username: user.username, + message: "Rolls deleted" + } + }); + + } catch (err) { + res.status(500).send({ + status: 'error', + message: err.message + }) + } +}; \ No newline at end of file diff --git a/controller/getRolls.js b/controller/getRolls.js new file mode 100644 index 000000000..0a0d7dc03 --- /dev/null +++ b/controller/getRolls.js @@ -0,0 +1,29 @@ +const {Players, Rolls} = require('../models/dices'); + +module.exports = async function (req, res) { + try { + // Check if user exists + const user = await Players.findOne({ + where: { username: req.params.id }, + }); + if(!user) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request + + let rolls = await Rolls.findAll({ + where: { playerId: user.id }, + }); + + res.status(200).send({ + status: "success", + data: { + username: user.username, + rolls + } + }); + + } catch (err) { + res.status(500).send({ + status: 'error', + message: err.message + }) + } +}; \ No newline at end of file diff --git a/routes/players.js b/routes/players.js index de1f14415..bd133fcf2 100644 --- a/routes/players.js +++ b/routes/players.js @@ -5,13 +5,15 @@ const getPlayers = require('../controller/getPlayers'); const addPlayer = require('../controller/addPlayer'); const updatePlayer = require('../controller/updatePlayer'); const rollDices = require('../controller/rollDices'); +const deleteRolls = require('../controller/deleteRolls'); +const getRolls = require('../controller/getRolls'); router.post('/', addPlayer); router.put('/', updatePlayer); router.post('/:id/games', rollDices); -router.delete('/:id/games', (req, res) => res.send('DELETE /players/:id/games')); +router.delete('/:id/games', deleteRolls); router.get('/', getPlayers); -router.get('/:id/games', (req, res) => res.send('GET /players/:id/games')); +router.get('/:id/games', getRolls); router.get('/ranking', (req, res) => res.send('GET /players/ranking')); router.get('/ranking/loser', (req, res) => res.send('GET /players/ranking/loser')); router.get('/ranking/winner', (req, res) => res.send('GET /players/ranking/winner')); From f61a7ea28a56cb436dc35f691fe91a4becfc3d23 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Thu, 12 May 2022 11:07:28 +0200 Subject: [PATCH 12/24] anonim + get player solved --- controller/addPlayer.js | 41 +++++++++++++++++++++------------------ controller/deleteRolls.js | 2 +- controller/getPlayers.js | 17 ++++++++++++---- controller/getRolls.js | 2 +- controller/rollDices.js | 11 ++++++++--- models/dices.js | 5 +++++ 6 files changed, 50 insertions(+), 28 deletions(-) diff --git a/controller/addPlayer.js b/controller/addPlayer.js index ce67781a8..3406c4f97 100644 --- a/controller/addPlayer.js +++ b/controller/addPlayer.js @@ -5,28 +5,31 @@ module.exports = async function addPlayers(req, res) { try { - if (!req.body.username) { - return res.status(400).send({ status: "fail", message: "username property not found"}); // 400 - Bad request - } - - const alreadyRegistered = await Players.findOne({ - where: { username: req.body.username }, - }); - - if(alreadyRegistered){ - return res.status(400).send({ status: "fail", message: "username already registered"}); // 400 - Bad request - } + let player = ''; - let player = await Players.create({ username: req.body.username }) + if (req.body.username) { - res.status(200).send({ - status: "success", - data: { - id: player.id, - username: player.username, + const alreadyRegistered = await Players.findOne({ + where: { username: req.body.username }, + }); + + if(alreadyRegistered){ + return res.status(400).send({ status: "fail", message: "username already registered"}); // 400 - Bad request } - }); - + + player = await Players.create({ username: req.body.username }) + } else { + player = await Players.create({ username: 'ANONIM' }) + } + + res.status(200).send({ + status: "success", + data: { + id: player.id, + username: player.username, + } + }); + } catch (err) { res.status(500).send({ status: 'error', diff --git a/controller/deleteRolls.js b/controller/deleteRolls.js index 74ecad632..d9cf431fc 100644 --- a/controller/deleteRolls.js +++ b/controller/deleteRolls.js @@ -4,7 +4,7 @@ module.exports = async function (req, res) { try { // Check if user exists const user = await Players.findOne({ - where: { username: req.params.id }, + where: { id: parseInt(req.params.id) }, }); if(!user) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request diff --git a/controller/getPlayers.js b/controller/getPlayers.js index dba107230..d1a935397 100644 --- a/controller/getPlayers.js +++ b/controller/getPlayers.js @@ -1,11 +1,20 @@ -const {Players} = require ('../models/dices'); +const {Players, Rolls} = require ('../models/dices'); +const Sequelize = require('sequelize'); module.exports = async function getPlayers(req, res) { try { - let players = await Players.findAll(); + + let players = await Players.findAll({ + include: [{ + model: Rolls, + required: false + }], + attributes: ['id',[Sequelize.fn('AVG', Sequelize.col('win')), 'win']], + group: 'id' + }); let playersData = players.map(i => { - return {id: i.dataValues.id, username:i.dataValues.username} + return {playerId: i.dataValues.id, percentage: (i.dataValues.win) ? i.dataValues.win:0} }); res.status(200).send({ @@ -21,4 +30,4 @@ module.exports = async function getPlayers(req, res) { message: err.message }) } -} \ No newline at end of file +} diff --git a/controller/getRolls.js b/controller/getRolls.js index 0a0d7dc03..166ddaa07 100644 --- a/controller/getRolls.js +++ b/controller/getRolls.js @@ -4,7 +4,7 @@ module.exports = async function (req, res) { try { // Check if user exists const user = await Players.findOne({ - where: { username: req.params.id }, + where: { username: parseInt(req.params.id) }, }); if(!user) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request diff --git a/controller/rollDices.js b/controller/rollDices.js index ef375eee5..de6f11c17 100644 --- a/controller/rollDices.js +++ b/controller/rollDices.js @@ -4,14 +4,19 @@ module.exports = async function (req, res) { try { // Check if user exists const user = await Players.findOne({ - where: { username: req.params.id }, + where: { id: parseInt(req.params.id) }, }); if(!user) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request + //Math.floor(Math.random()*(max-min+1)+min) for number between [1,6] + let dice1 = Math.floor(Math.random()*(6-1+1)+1); + let dice2 = Math.floor(Math.random()*(6-1+1)+1); + const roll = { playerId: user.id, - dice1: Math.floor(Math.random()*(6-1+1)+1), - dice2: Math.floor(Math.random()*(6-1+1)+1) //Math.floor(Math.random()*(max-min+1)+min) + dice1, + dice2, + win: ((dice1+dice2) === 7 ? 1 : 0) }; await Rolls.create(roll) diff --git a/models/dices.js b/models/dices.js index 63af8fff1..bd512e1c7 100644 --- a/models/dices.js +++ b/models/dices.js @@ -17,10 +17,15 @@ const Rolls = db.define('rolls', { dice2: { type: Sequelize.INTEGER, allowNull: false + }, + win: { + type: Sequelize.SMALLINT, + allowNull: false } }) Players.hasMany(Rolls); // one-to-many relationship +Rolls.belongsTo(Players); Players.sync() .then() From e794c7051357ed248caa00e57d82cc4faf714985 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Thu, 12 May 2022 11:26:28 +0200 Subject: [PATCH 13/24] finish him! --- controller/getLoser.js | 43 ++++++++++++++++++++++++++++++++++++++++ controller/getRanking.js | 41 ++++++++++++++++++++++++++++++++++++++ controller/getWinner.js | 43 ++++++++++++++++++++++++++++++++++++++++ routes/players.js | 9 ++++++--- 4 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 controller/getLoser.js create mode 100644 controller/getRanking.js create mode 100644 controller/getWinner.js diff --git a/controller/getLoser.js b/controller/getLoser.js new file mode 100644 index 000000000..0fef79603 --- /dev/null +++ b/controller/getLoser.js @@ -0,0 +1,43 @@ +const {Players, Rolls} = require ('../models/dices'); +const Sequelize = require('sequelize'); + +module.exports = async function getPlayers(req, res) { + try { + let players = await Players.findAll({ + include: [{ + model: Rolls, + required: false + }], + attributes: ['id',[Sequelize.fn('AVG', Sequelize.col('win')), 'win']], + group: 'id' + }); + + players.sort(function(a,b){ + return b.dataValues.win - a.dataValues.win; + }); + + let rank = 1; + + let playersData = players.map(i => { + return { + playerId: i.dataValues.id, + percentage: (i.dataValues.win) ? i.dataValues.win:0, + rankingPosition: rank++} + }); + + playersData = playersData[playersData.length - 1]; + + res.status(200).send({ + status: "success", + data: { + players: playersData + } + }); + + } catch (err) { + res.status(500).send({ + status: 'error', + message: err.message + }) + } +} diff --git a/controller/getRanking.js b/controller/getRanking.js new file mode 100644 index 000000000..65edebf81 --- /dev/null +++ b/controller/getRanking.js @@ -0,0 +1,41 @@ +const {Players, Rolls} = require ('../models/dices'); +const Sequelize = require('sequelize'); + +module.exports = async function getPlayers(req, res) { + try { + let players = await Players.findAll({ + include: [{ + model: Rolls, + required: false + }], + attributes: ['id',[Sequelize.fn('AVG', Sequelize.col('win')), 'win']], + group: 'id' + }); + + players.sort(function(a,b){ + return b.dataValues.win - a.dataValues.win; + }); + + let rank = 1; + + let playersData = players.map(i => { + return { + playerId: i.dataValues.id, + percentage: (i.dataValues.win) ? i.dataValues.win:0, + rankingPosition: rank++} + }); + + res.status(200).send({ + status: "success", + data: { + players: playersData + } + }); + + } catch (err) { + res.status(500).send({ + status: 'error', + message: err.message + }) + } +} diff --git a/controller/getWinner.js b/controller/getWinner.js new file mode 100644 index 000000000..3db8b1aa6 --- /dev/null +++ b/controller/getWinner.js @@ -0,0 +1,43 @@ +const {Players, Rolls} = require ('../models/dices'); +const Sequelize = require('sequelize'); + +module.exports = async function getPlayers(req, res) { + try { + let players = await Players.findAll({ + include: [{ + model: Rolls, + required: false + }], + attributes: ['id',[Sequelize.fn('AVG', Sequelize.col('win')), 'win']], + group: 'id' + }); + + players.sort(function(a,b){ + return b.dataValues.win - a.dataValues.win; + }); + + let rank = 1; + + let playersData = players.map(i => { + return { + playerId: i.dataValues.id, + percentage: (i.dataValues.win) ? i.dataValues.win:0, + rankingPosition: rank++} + }); + + playersData = playersData[0]; + + res.status(200).send({ + status: "success", + data: { + players: playersData + } + }); + + } catch (err) { + res.status(500).send({ + status: 'error', + message: err.message + }) + } +} diff --git a/routes/players.js b/routes/players.js index bd133fcf2..e024963a8 100644 --- a/routes/players.js +++ b/routes/players.js @@ -7,6 +7,9 @@ const updatePlayer = require('../controller/updatePlayer'); const rollDices = require('../controller/rollDices'); const deleteRolls = require('../controller/deleteRolls'); const getRolls = require('../controller/getRolls'); +const getRanking = require('../controller/getRanking'); +const getLoser = require('../controller/getLoser'); +const getWinner = require('../controller/getWinner'); router.post('/', addPlayer); router.put('/', updatePlayer); @@ -14,8 +17,8 @@ router.post('/:id/games', rollDices); router.delete('/:id/games', deleteRolls); router.get('/', getPlayers); router.get('/:id/games', getRolls); -router.get('/ranking', (req, res) => res.send('GET /players/ranking')); -router.get('/ranking/loser', (req, res) => res.send('GET /players/ranking/loser')); -router.get('/ranking/winner', (req, res) => res.send('GET /players/ranking/winner')); +router.get('/ranking', getRanking); +router.get('/ranking/loser', getLoser); +router.get('/ranking/winner', getWinner); module.exports = router; From 28e763f482e196d8783d52f4a10009921e53d294 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Fri, 13 May 2022 11:59:53 +0200 Subject: [PATCH 14/24] restructure of project --- .env-template | 3 + app.js | 21 ++- controller/login/login.js | 30 ++++ controller/{ => player}/addPlayer.js | 2 +- controller/{ => player}/deleteRolls.js | 2 +- controller/{ => player}/getPlayers.js | 0 controller/{ => player}/getRolls.js | 2 +- controller/{ => player}/rollDices.js | 2 +- controller/{ => player}/updatePlayer.js | 2 +- package-lock.json | 177 +++++++++++++++++++++++- package.json | 1 + request.http | 11 ++ routes/{invalid.js => invalidRoute.js} | 0 routes/login.js | 8 ++ routes/players.js | 15 +- services/authentication.js | 13 ++ startup/routes.js | 10 -- 17 files changed, 268 insertions(+), 31 deletions(-) create mode 100644 controller/login/login.js rename controller/{ => player}/addPlayer.js (95%) rename controller/{ => player}/deleteRolls.js (92%) rename controller/{ => player}/getPlayers.js (100%) rename controller/{ => player}/getRolls.js (92%) rename controller/{ => player}/rollDices.js (94%) rename controller/{ => player}/updatePlayer.js (97%) create mode 100644 request.http rename routes/{invalid.js => invalidRoute.js} (100%) create mode 100644 routes/login.js create mode 100644 services/authentication.js delete mode 100644 startup/routes.js diff --git a/.env-template b/.env-template index b8792640d..e88bf72d7 100644 --- a/.env-template +++ b/.env-template @@ -5,3 +5,6 @@ DB_PASS=1234 DB_NAME=machado_dices API_PORT=5000 + +ACCESS_TOKEN_SECRET=8472ab76016b0881aeab256c9e3c4c6c321fc757f506736d99054e626e98cb3b224897187a30e5d4abbe98c249c8da8aa7badfe98dd099a93fd510fa8b84cf91 +REFRESH_TOKEN_SECRET=2f92cf56fdc55fb33f8e4b423ede9bb1d4f38a5cbc5c27603edf061f71957efaf0181262618b62ded74563a75fb15b2bdb339e607e62105c3d65d558fb0c7337 diff --git a/app.js b/app.js index 6869ccf2b..e035080e2 100644 --- a/app.js +++ b/app.js @@ -1,11 +1,24 @@ +// Express server const express = require('express'); - -require('dotenv').config() - const app = express(); // Routes -require('./startup/routes')(app); +const players = require('./routes/players'); +const login = require('./routes/login'); +const invalidRoute = require('./routes/invalidRoute'); + +// JWT +const jwt = require('jsonwebtoken'); + +// use .env file variables +require('dotenv').config() + +// Middlewares of express server +app.use(express.json()); +app.use('/players', players); +app.use('/login', login) +app.use(invalidRoute); +// Start server const PORT = process.env.API_PORT || 3000; app.listen(PORT, console.log(`Server started on port ${PORT}`)); \ No newline at end of file diff --git a/controller/login/login.js b/controller/login/login.js new file mode 100644 index 000000000..8b14cf6c6 --- /dev/null +++ b/controller/login/login.js @@ -0,0 +1,30 @@ +require('dotenv').config() + +module.exports = async function login(req, res) { + + try { + + if (!req.body.username) { + return res.status(400).send({ status: "fail", message: "username property not found"}); // 400 - Bad request + } + + const username = req.body.username; + const user = { name: username }; + + const accessToken = jwt.sign(user, process.env.ACCESS_TOKEN_SECRET); + + res.status(200).send({ + status: "success", + data: { + id: player.id, + username: player.username, + } + }); + + } catch (err) { + res.status(500).send({ + status: 'error', + message: err.message + }) + } +} \ No newline at end of file diff --git a/controller/addPlayer.js b/controller/player/addPlayer.js similarity index 95% rename from controller/addPlayer.js rename to controller/player/addPlayer.js index 3406c4f97..b2e229b26 100644 --- a/controller/addPlayer.js +++ b/controller/player/addPlayer.js @@ -1,5 +1,5 @@ -const {Players} = require ('../models/dices'); +const {Players} = require ('../../models/dices'); module.exports = async function addPlayers(req, res) { diff --git a/controller/deleteRolls.js b/controller/player/deleteRolls.js similarity index 92% rename from controller/deleteRolls.js rename to controller/player/deleteRolls.js index d9cf431fc..7c40abefc 100644 --- a/controller/deleteRolls.js +++ b/controller/player/deleteRolls.js @@ -1,4 +1,4 @@ -const {Players, Rolls} = require('../models/dices'); +const {Players, Rolls} = require('../../models/dices'); module.exports = async function (req, res) { try { diff --git a/controller/getPlayers.js b/controller/player/getPlayers.js similarity index 100% rename from controller/getPlayers.js rename to controller/player/getPlayers.js diff --git a/controller/getRolls.js b/controller/player/getRolls.js similarity index 92% rename from controller/getRolls.js rename to controller/player/getRolls.js index 166ddaa07..d2e93e9b8 100644 --- a/controller/getRolls.js +++ b/controller/player/getRolls.js @@ -1,4 +1,4 @@ -const {Players, Rolls} = require('../models/dices'); +const {Players, Rolls} = require('../../models/dices'); module.exports = async function (req, res) { try { diff --git a/controller/rollDices.js b/controller/player/rollDices.js similarity index 94% rename from controller/rollDices.js rename to controller/player/rollDices.js index de6f11c17..dcb4703b3 100644 --- a/controller/rollDices.js +++ b/controller/player/rollDices.js @@ -1,4 +1,4 @@ -const {Players, Rolls} = require ('../models/dices'); +const {Players, Rolls} = require ('../../models/dices'); module.exports = async function (req, res) { try { diff --git a/controller/updatePlayer.js b/controller/player/updatePlayer.js similarity index 97% rename from controller/updatePlayer.js rename to controller/player/updatePlayer.js index 36bb4ffb0..ba0bf0159 100644 --- a/controller/updatePlayer.js +++ b/controller/player/updatePlayer.js @@ -1,4 +1,4 @@ -const {Players} = require ('../models/dices'); +const {Players} = require ('../../models/dices'); module.exports = async function updatePlayer(req, res) { try { diff --git a/package-lock.json b/package-lock.json index 23b30b3da..94dde8b31 100755 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "dependencies": { "dotenv": "^9.0.2", "express": "^4.18.1", + "jsonwebtoken": "^8.5.1", "mysql2": "^2.3.3", "sequelize": "^6.19.0" }, @@ -226,6 +227,11 @@ "node": ">=8" } }, + "node_modules/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=" + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -565,6 +571,14 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, + "node_modules/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==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -1092,6 +1106,46 @@ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", "dev": true }, + "node_modules/jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=4", + "npm": ">=1.4.28" + } + }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, "node_modules/keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", @@ -1118,6 +1172,41 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, "node_modules/long": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", @@ -1673,7 +1762,6 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, "bin": { "semver": "bin/semver" } @@ -2378,6 +2466,11 @@ "fill-range": "^7.0.1" } }, + "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=" + }, "bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -2628,6 +2721,14 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, + "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", @@ -3038,6 +3139,42 @@ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", "dev": true }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.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" + } + }, "keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", @@ -3061,6 +3198,41 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, "long": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", @@ -3474,8 +3646,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "semver-diff": { "version": "3.1.1", diff --git a/package.json b/package.json index 09ae0b881..c0a5fa1a2 100755 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "dependencies": { "dotenv": "^9.0.2", "express": "^4.18.1", + "jsonwebtoken": "^8.5.1", "mysql2": "^2.3.3", "sequelize": "^6.19.0" }, diff --git a/request.http b/request.http new file mode 100644 index 000000000..a97646f56 --- /dev/null +++ b/request.http @@ -0,0 +1,11 @@ +GET http://localhost:5000/players + +### + +POST http://localhost:5000/players +Content-Type: application/json + +{ + "username": "Victor" +} + diff --git a/routes/invalid.js b/routes/invalidRoute.js similarity index 100% rename from routes/invalid.js rename to routes/invalidRoute.js diff --git a/routes/login.js b/routes/login.js new file mode 100644 index 000000000..ed1d92185 --- /dev/null +++ b/routes/login.js @@ -0,0 +1,8 @@ +const express = require('express'); +const router = express.Router(); + +const login = require('../controller/login/login'); + +router.post('/login', login); + +module.exports = router; diff --git a/routes/players.js b/routes/players.js index e024963a8..fa4b4bdb2 100644 --- a/routes/players.js +++ b/routes/players.js @@ -1,15 +1,12 @@ const express = require('express'); const router = express.Router(); -const getPlayers = require('../controller/getPlayers'); -const addPlayer = require('../controller/addPlayer'); -const updatePlayer = require('../controller/updatePlayer'); -const rollDices = require('../controller/rollDices'); -const deleteRolls = require('../controller/deleteRolls'); -const getRolls = require('../controller/getRolls'); -const getRanking = require('../controller/getRanking'); -const getLoser = require('../controller/getLoser'); -const getWinner = require('../controller/getWinner'); +const getPlayers = require('../controller/player/getPlayers'); +const addPlayer = require('../controller/player/addPlayer'); +const updatePlayer = require('../controller/player/updatePlayer'); +const rollDices = require('../controller/player/rollDices'); +const deleteRolls = require('../controller/player/deleteRolls'); +const getRolls = require('../controller/player/getRolls'); router.post('/', addPlayer); router.put('/', updatePlayer); diff --git a/services/authentication.js b/services/authentication.js new file mode 100644 index 000000000..b88272fd1 --- /dev/null +++ b/services/authentication.js @@ -0,0 +1,13 @@ +const { JsonWebTokenError } = require("jsonwebtoken"); + +function authenticateToken(req,res,next) { + const authHeader = req.headers['authorization']; + const token = authHeader && authHeader.split(' ')[1]; + if (token == null) return res.sendStatus(401); + + jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, (err, user) => { + if (err) return res.sendStatus(403); + req.user = user + next() + }) +} \ No newline at end of file diff --git a/startup/routes.js b/startup/routes.js deleted file mode 100644 index 9d979d39e..000000000 --- a/startup/routes.js +++ /dev/null @@ -1,10 +0,0 @@ -const express = require('express'); - -const players = require('../routes/players'); -const invalid = require('../routes/invalid'); - -module.exports = app => { - app.use(express.json()); - app.use('/players', players); - app.use(invalid); -} \ No newline at end of file From 51b0c09875c6c58bd7fc9448d65be65cf56cee4a Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Fri, 13 May 2022 14:01:48 +0200 Subject: [PATCH 15/24] upd --- app.js | 25 +- config/database.js | 20 +- controller/player/addPlayer.js | 10 +- controller/player/deletePlayer.js | 32 + controller/player/getPlayers.js | 15 +- controller/player/updatePlayer.js | 37 +- controller/{ => ranking}/getLoser.js | 2 +- controller/{ => ranking}/getRanking.js | 2 +- controller/{ => ranking}/getWinner.js | 2 +- package-lock.json | 795 +++++++++++++++++++++++-- package.json | 1 + request.http | 19 +- routes/players.js | 15 +- services/createDatabase.js | 15 + 14 files changed, 870 insertions(+), 120 deletions(-) create mode 100644 controller/player/deletePlayer.js rename controller/{ => ranking}/getLoser.js (94%) rename controller/{ => ranking}/getRanking.js (94%) rename controller/{ => ranking}/getWinner.js (94%) create mode 100644 services/createDatabase.js diff --git a/app.js b/app.js index e035080e2..e92c48dc0 100644 --- a/app.js +++ b/app.js @@ -1,24 +1,19 @@ +// use .env file variables +require('dotenv').config() + // Express server const express = require('express'); const app = express(); -// Routes -const players = require('./routes/players'); -const login = require('./routes/login'); -const invalidRoute = require('./routes/invalidRoute'); - -// JWT -const jwt = require('jsonwebtoken'); - -// use .env file variables -require('dotenv').config() - // Middlewares of express server app.use(express.json()); -app.use('/players', players); -app.use('/login', login) -app.use(invalidRoute); +app.use('/players', require('./routes/players')); +app.use('/login', require('./routes/login')) +app.use(require('./routes/invalidRoute')); + +// Create database if not exists +require('./services/createDatabase')(); // Start server const PORT = process.env.API_PORT || 3000; -app.listen(PORT, console.log(`Server started on port ${PORT}`)); \ No newline at end of file +app.listen(PORT, console.log(`Server started on port ${PORT}`)); diff --git a/config/database.js b/config/database.js index 378f654b9..7e5b5028d 100644 --- a/config/database.js +++ b/config/database.js @@ -1,24 +1,10 @@ -const Sequelize = require('sequelize'); -const mysql = require('mysql2/promise'); - require('dotenv').config(); -(async ()=>{ - // Create database if not exist - const connection = await mysql.createConnection({ - host: process.env.DB_HOST, - user: process.env.DB_USER, - password: process.env.DB_PASS }); - - const con = await connection.connect(); - await connection.query(`CREATE DATABASE IF NOT EXISTS \`${process.env.DB_NAME}\`;`); - console.log(`Database ${process.env.DB_NAME} (re)created`); - await connection.end(); -})(); - +const Sequelize = require('sequelize'); + // Export connection to database module.exports = new Sequelize(process.env.DB_NAME, process.env.DB_USER, process.env.DB_PASS, { host: process.env.DB_HOST, dialect: 'mysql', port: process.env.DB_PORT - }); + }); diff --git a/controller/player/addPlayer.js b/controller/player/addPlayer.js index b2e229b26..14c9fdc17 100644 --- a/controller/player/addPlayer.js +++ b/controller/player/addPlayer.js @@ -1,7 +1,8 @@ const {Players} = require ('../../models/dices'); +const Sequelize = require('sequelize') -module.exports = async function addPlayers(req, res) { +module.exports = async (req, res) => { try { @@ -12,12 +13,13 @@ module.exports = async function addPlayers(req, res) { const alreadyRegistered = await Players.findOne({ where: { username: req.body.username }, }); - + if(alreadyRegistered){ return res.status(400).send({ status: "fail", message: "username already registered"}); // 400 - Bad request } - - player = await Players.create({ username: req.body.username }) + + player = await Players.create({ username: req.body.username.toLowerCase() }) + } else { player = await Players.create({ username: 'ANONIM' }) } diff --git a/controller/player/deletePlayer.js b/controller/player/deletePlayer.js new file mode 100644 index 000000000..f22cf2a7a --- /dev/null +++ b/controller/player/deletePlayer.js @@ -0,0 +1,32 @@ +const {Players} = require('../../models/dices'); + +module.exports = async (req, res) => { + try { + + // Find the user + const player = await Players.findOne({where: { id: parseInt(req.params.id) }}); + + // Check if player ID does exist + if (!player) return res.status(400).send({ status: "fail", message: "player id not found"}); // 400 - Bad request + + //Delete the user + let dat = await Players.destroy({where: { id: parseInt(req.params.id) }}); + + console.log(dat) + + res.status(200).send({ + status: "success", + data: { + id: player.dataValues.id, + username: player.dataValues.username, + message: "User deleted" + } + }); + + } catch (err) { + res.status(500).send({ + status: 'error', + message: err.message + }) + } +}; \ No newline at end of file diff --git a/controller/player/getPlayers.js b/controller/player/getPlayers.js index d1a935397..851a1ec18 100644 --- a/controller/player/getPlayers.js +++ b/controller/player/getPlayers.js @@ -1,20 +1,13 @@ -const {Players, Rolls} = require ('../models/dices'); +const {Players, Rolls} = require ('../../models/dices'); const Sequelize = require('sequelize'); -module.exports = async function getPlayers(req, res) { +module.exports = async (req, res) => { try { - let players = await Players.findAll({ - include: [{ - model: Rolls, - required: false - }], - attributes: ['id',[Sequelize.fn('AVG', Sequelize.col('win')), 'win']], - group: 'id' - }); + let players = await Players.findAll(); let playersData = players.map(i => { - return {playerId: i.dataValues.id, percentage: (i.dataValues.win) ? i.dataValues.win:0} + return {id: i.dataValues.id, username:i.dataValues.username} }); res.status(200).send({ diff --git a/controller/player/updatePlayer.js b/controller/player/updatePlayer.js index ba0bf0159..83055f6ee 100644 --- a/controller/player/updatePlayer.js +++ b/controller/player/updatePlayer.js @@ -1,37 +1,40 @@ const {Players} = require ('../../models/dices'); -module.exports = async function updatePlayer(req, res) { +module.exports = async (req, res) => { try { + + // Find the user + const player = await Players.findOne({where: { id: parseInt(req.params.id) }}); + + // Check if player ID does exist + if (!player) return res.status(400).send({ status: "fail", message: "player id not found"}); // 400 - Bad request + + // Check if username is provided - if (!req.body.username) return res.status(400).send({ status: "fail", message: "username property not found"}); // 400 - Bad request - // Check if new username is provided - if (!req.body.newUsername) return res.status(400).send({ status: "fail", message: "newUsername property not found"}); // 400 - Bad request - // Check if username and new username are different - if (req.body.username === req.body.newUsername) return res.status(400).send({ status: "fail", message: "newUsername must be different"}); // 400 - Bad request + if (!req.body.username) return res.status(400).send({ status: "fail", message: "username not provided"}); // 400 - Bad request + // Check if username is different from previous one + if (player.dataValues.username === req.body.username) return res.status(400).send({ status: "fail", message: "new username must be different"}); // 400 - Bad request // Check if username is already registered - const usernameRegistered = await Players.findOne({ + const alreadyRegistered = await Players.findOne({ where: { username: req.body.username }, - }); - if(!usernameRegistered) return res.status(400).send({ status: "fail", message: "username not found"}); // 400 - Bad request + }); - // Check if new username is already registered - const newUsernameRegistered = await Players.findOne({ - where: { username: req.body.newUsername }, - }); - if(newUsernameRegistered) return res.status(400).send({ status: "fail", message: "newUsername already registered"}); // 400 - Bad request + if (alreadyRegistered) { + return res.status(400).send({ status: "fail", message: "username already registered"}); // 400 - Bad request + } // Update record await Players.update( - { username: req.body.newUsername}, - { where: { username: req.body.username } } + { username: req.body.username.toLowerCase()}, + { where: { username: player.dataValues.username } } ); res.status(200).send({ status: "success", data: { - username: req.body.newUsername + username: req.body.username.toLowerCase() } }); diff --git a/controller/getLoser.js b/controller/ranking/getLoser.js similarity index 94% rename from controller/getLoser.js rename to controller/ranking/getLoser.js index 0fef79603..d6e38b9dc 100644 --- a/controller/getLoser.js +++ b/controller/ranking/getLoser.js @@ -1,4 +1,4 @@ -const {Players, Rolls} = require ('../models/dices'); +const {Players, Rolls} = require ('../../models/dices'); const Sequelize = require('sequelize'); module.exports = async function getPlayers(req, res) { diff --git a/controller/getRanking.js b/controller/ranking/getRanking.js similarity index 94% rename from controller/getRanking.js rename to controller/ranking/getRanking.js index 65edebf81..dab1822ce 100644 --- a/controller/getRanking.js +++ b/controller/ranking/getRanking.js @@ -1,4 +1,4 @@ -const {Players, Rolls} = require ('../models/dices'); +const {Players, Rolls} = require ('../../models/dices'); const Sequelize = require('sequelize'); module.exports = async function getPlayers(req, res) { diff --git a/controller/getWinner.js b/controller/ranking/getWinner.js similarity index 94% rename from controller/getWinner.js rename to controller/ranking/getWinner.js index 3db8b1aa6..f116d44f9 100644 --- a/controller/getWinner.js +++ b/controller/ranking/getWinner.js @@ -1,4 +1,4 @@ -const {Players, Rolls} = require ('../models/dices'); +const {Players, Rolls} = require ('../../models/dices'); const Sequelize = require('sequelize'); module.exports = async function getPlayers(req, res) { diff --git a/package-lock.json b/package-lock.json index 94dde8b31..880c5a23e 100755 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "1.0.0", "license": "MIT", "dependencies": { + "bcrypt": "^5.0.1", "dotenv": "^9.0.2", "express": "^4.18.1", "jsonwebtoken": "^8.5.1", @@ -19,6 +20,53 @@ "nodemon": "^2.0.16" } }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz", + "integrity": "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==", + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -66,8 +114,7 @@ "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==", - "dev": true + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "node_modules/accepts": { "version": "1.3.8", @@ -81,6 +128,38 @@ "node": ">= 0.6" } }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -94,7 +173,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -127,6 +205,23 @@ "node": ">= 8" } }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -135,8 +230,20 @@ "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==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/bcrypt": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz", + "integrity": "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==", + "hasInstallScript": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.0", + "node-addon-api": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + } }, "node_modules/binary-extensions": { "version": "2.2.0", @@ -209,7 +316,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -370,6 +476,14 @@ "fsevents": "~2.3.2" } }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, "node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", @@ -415,11 +529,18 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "node_modules/configstore": { "version": "5.0.1", @@ -438,6 +559,11 @@ "node": ">=8" } }, + "node_modules/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=" + }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -515,6 +641,11 @@ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, "node_modules/denque": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", @@ -540,6 +671,14 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "engines": { + "node": ">=8" + } + }, "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -587,8 +726,7 @@ "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/encodeurl": { "version": "1.0.2", @@ -741,6 +879,22 @@ "node": ">= 0.6" } }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, "node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", @@ -760,6 +914,25 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/generate-function": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", @@ -793,6 +966,25 @@ "node": ">=6" } }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dependencies": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -879,6 +1071,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, "node_modules/has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", @@ -909,6 +1106,39 @@ "node": ">= 0.8" } }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -952,6 +1182,15 @@ "node >= 0.4.0" ] }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -1011,7 +1250,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -1236,7 +1474,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, "dependencies": { "semver": "^6.0.0" }, @@ -1251,7 +1488,6 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -1320,7 +1556,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1334,6 +1569,40 @@ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, + "node_modules/minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/moment": { "version": "2.29.3", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", @@ -1420,6 +1689,30 @@ "node": ">= 0.6" } }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/nodemon": { "version": "2.0.16", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", @@ -1482,6 +1775,25 @@ "node": ">=8" } }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-inspect": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", @@ -1505,7 +1817,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "dependencies": { "wrappy": "1" } @@ -1551,6 +1862,14 @@ "node": ">= 0.8" } }, + "node_modules/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=", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -1684,6 +2003,19 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -1734,6 +2066,20 @@ "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-5.0.0.tgz", "integrity": "sha512-6S+5LvtTl2ggBumk04hBo/4Uf6fRJUwIgunGZ7CYEBCeufGFW1Pu6ucUf/UskHeWOIsUcLOGLFXPig5tR5V1nA==" }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -1951,6 +2297,11 @@ "node": ">= 0.8.0" } }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -1972,8 +2323,7 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/sqlstring": { "version": "2.3.3", @@ -1991,11 +2341,18 @@ "node": ">= 0.8" } }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -2009,7 +2366,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -2038,6 +2394,22 @@ "node": ">=4" } }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", @@ -2084,6 +2456,11 @@ "nodetouch": "bin/nodetouch.js" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, "node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -2198,6 +2575,11 @@ "node": ">=4" } }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -2222,6 +2604,28 @@ "node": ">= 0.8" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, "node_modules/widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", @@ -2262,8 +2666,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/write-file-atomic": { "version": "3.0.3", @@ -2293,6 +2696,40 @@ } }, "dependencies": { + "@mapbox/node-pre-gyp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz", + "integrity": "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==", + "requires": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "dependencies": { + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "requires": { + "abbrev": "1" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -2334,8 +2771,7 @@ "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "accepts": { "version": "1.3.8", @@ -2346,6 +2782,29 @@ "negotiator": "0.6.3" } }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -2358,8 +2817,7 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "4.3.0", @@ -2380,6 +2838,20 @@ "picomatch": "^2.0.4" } }, + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -2388,8 +2860,16 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "bcrypt": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz", + "integrity": "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==", + "requires": { + "@mapbox/node-pre-gyp": "^1.0.0", + "node-addon-api": "^3.1.0" + } }, "binary-extensions": { "version": "2.2.0", @@ -2451,7 +2931,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2566,6 +3045,11 @@ "readdirp": "~3.6.0" } }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", @@ -2602,11 +3086,15 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "configstore": { "version": "5.0.1", @@ -2622,6 +3110,11 @@ "xdg-basedir": "^4.0.0" } }, + "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.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -2681,6 +3174,11 @@ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, "denque": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", @@ -2696,6 +3194,11 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, + "detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==" + }, "dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -2737,8 +3240,7 @@ "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "encodeurl": { "version": "1.0.2", @@ -2871,6 +3373,19 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, "fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", @@ -2883,6 +3398,22 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + } + }, "generate-function": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", @@ -2910,6 +3441,19 @@ "pump": "^3.0.0" } }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "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" + } + }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -2972,6 +3516,11 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, "has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", @@ -2996,6 +3545,30 @@ "toidentifier": "1.0.1" } }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -3027,6 +3600,15 @@ "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.2.tgz", "integrity": "sha512-cmZlljCRTBFouT8UzMzrGcVEvkv6D/wBdcdKG7J1QH5cXjtU75Dm+P27v9EKu/Y43UYyCJd1WC4zLebRrC8NBw==" }, + "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.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -3070,8 +3652,7 @@ "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-glob": { "version": "4.0.3", @@ -3256,7 +3837,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, "requires": { "semver": "^6.0.0" }, @@ -3264,8 +3844,7 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -3312,7 +3891,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -3323,6 +3901,28 @@ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, + "minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, "moment": { "version": "2.29.3", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", @@ -3395,6 +3995,19 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, + "node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, "nodemon": { "version": "2.0.16", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", @@ -3434,6 +4047,22 @@ "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", "dev": true }, + "npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "requires": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "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.12.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", @@ -3451,7 +4080,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -3487,6 +4115,11 @@ "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-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -3592,6 +4225,16 @@ } } }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -3633,6 +4276,14 @@ "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-5.0.0.tgz", "integrity": "sha512-6S+5LvtTl2ggBumk04hBo/4Uf6fRJUwIgunGZ7CYEBCeufGFW1Pu6ucUf/UskHeWOIsUcLOGLFXPig5tR5V1nA==" }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -3774,6 +4425,11 @@ "send": "0.18.0" } }, + "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.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -3792,8 +4448,7 @@ "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "sqlstring": { "version": "2.3.3", @@ -3805,11 +4460,18 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -3820,7 +4482,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "requires": { "ansi-regex": "^5.0.1" } @@ -3840,6 +4501,19 @@ "has-flag": "^3.0.0" } }, + "tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", @@ -3874,6 +4548,11 @@ "nopt": "~1.0.10" } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -3960,6 +4639,11 @@ "prepend-http": "^2.0.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", @@ -3975,6 +4659,28 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", @@ -4006,8 +4712,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "3.0.3", diff --git a/package.json b/package.json index c0a5fa1a2..5e07649e4 100755 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "author": "Victor Machado", "license": "MIT", "dependencies": { + "bcrypt": "^5.0.1", "dotenv": "^9.0.2", "express": "^4.18.1", "jsonwebtoken": "^8.5.1", diff --git a/request.http b/request.http index a97646f56..a18de8f26 100644 --- a/request.http +++ b/request.http @@ -1,11 +1,26 @@ +### Get players list GET http://localhost:5000/players -### +### Add player with username +POST http://localhost:5000/players +Content-Type: application/json + +{ + "username": "victor" +} +### Add player ANONIM POST http://localhost:5000/players + + +### Modify players username +PUT http://localhost:5000/players/2 Content-Type: application/json { - "username": "Victor" + "username": "javi" } + +### Delete player +DELETE http://localhost:5000/players/5 \ No newline at end of file diff --git a/routes/players.js b/routes/players.js index fa4b4bdb2..ff6176ef5 100644 --- a/routes/players.js +++ b/routes/players.js @@ -1,18 +1,21 @@ const express = require('express'); const router = express.Router(); -const getPlayers = require('../controller/player/getPlayers'); -const addPlayer = require('../controller/player/addPlayer'); -const updatePlayer = require('../controller/player/updatePlayer'); const rollDices = require('../controller/player/rollDices'); const deleteRolls = require('../controller/player/deleteRolls'); const getRolls = require('../controller/player/getRolls'); +const getRanking = require('../controller/ranking/getRanking'); +const getLoser = require('../controller/ranking/getLoser'); +const getWinner = require('../controller/ranking/getWinner'); + +router.get('/', require('../controller/player/getPlayers')); +router.post('/', require('../controller/player/addPlayer')); +router.put('/:id', require('../controller/player/updatePlayer')); +router.delete('/:id', require('../controller/player/deletePlayer')); + -router.post('/', addPlayer); -router.put('/', updatePlayer); router.post('/:id/games', rollDices); router.delete('/:id/games', deleteRolls); -router.get('/', getPlayers); router.get('/:id/games', getRolls); router.get('/ranking', getRanking); router.get('/ranking/loser', getLoser); diff --git a/services/createDatabase.js b/services/createDatabase.js new file mode 100644 index 000000000..a7b234008 --- /dev/null +++ b/services/createDatabase.js @@ -0,0 +1,15 @@ + +const mysql = require('mysql2/promise'); + +// Create database if not exist +module.exports = (async ()=>{ + const connection = await mysql.createConnection({ + host: process.env.DB_HOST, + user: process.env.DB_USER, + password: process.env.DB_PASS }); + + const con = await connection.connect(); + await connection.query(`CREATE DATABASE IF NOT EXISTS \`${process.env.DB_NAME}\`;`); + console.log(`Database ${process.env.DB_NAME} (re)created`); + await connection.end(); +}); \ No newline at end of file From 03b3bc8c78192623a9460689312f4d1da41b1197 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Fri, 13 May 2022 15:40:15 +0200 Subject: [PATCH 16/24] upd --- _http_requests/games.http | 8 ++++ request.http => _http_requests/player.http | 7 +-- _http_requests/ranking.http | 8 ++++ app.js | 2 + controller/{player => games}/deleteRolls.js | 0 controller/{player => games}/getRolls.js | 6 ++- controller/{player => games}/rollDices.js | 1 + controller/ranking/getLoser.js | 44 +++++++++++------- controller/ranking/getRanking.js | 49 ++++++++++++++------- controller/ranking/getWinner.js | 44 +++++++++++------- routes/games.js | 8 ++++ routes/players.js | 15 ------- routes/ranking.js | 8 ++++ 13 files changed, 133 insertions(+), 67 deletions(-) create mode 100644 _http_requests/games.http rename request.http => _http_requests/player.http (82%) create mode 100644 _http_requests/ranking.http rename controller/{player => games}/deleteRolls.js (100%) rename controller/{player => games}/getRolls.js (81%) rename controller/{player => games}/rollDices.js (97%) create mode 100644 routes/games.js create mode 100644 routes/ranking.js diff --git a/_http_requests/games.http b/_http_requests/games.http new file mode 100644 index 000000000..64bba7fe2 --- /dev/null +++ b/_http_requests/games.http @@ -0,0 +1,8 @@ +### Get rolls of one player +GET http://localhost:5000/games/7 + +### A player rolls dices +POST http://localhost:5000/games/7 + +### Delete all rolls of a given player +DELETE http://localhost:5000/games/7 \ No newline at end of file diff --git a/request.http b/_http_requests/player.http similarity index 82% rename from request.http rename to _http_requests/player.http index a18de8f26..e0359d0d0 100644 --- a/request.http +++ b/_http_requests/player.http @@ -14,13 +14,14 @@ POST http://localhost:5000/players ### Modify players username -PUT http://localhost:5000/players/2 +PUT http://localhost:5000/players/1 Content-Type: application/json { "username": "javi" } - ### Delete player -DELETE http://localhost:5000/players/5 \ No newline at end of file +DELETE http://localhost:5000/players/5 + + diff --git a/_http_requests/ranking.http b/_http_requests/ranking.http new file mode 100644 index 000000000..113985d06 --- /dev/null +++ b/_http_requests/ranking.http @@ -0,0 +1,8 @@ +### Get ranking +GET http://localhost:5000/ranking + +### Get winner +GET http://localhost:5000/ranking/winner + +### Get loser +GET http://localhost:5000/ranking/loser \ No newline at end of file diff --git a/app.js b/app.js index e92c48dc0..baa4727c5 100644 --- a/app.js +++ b/app.js @@ -8,6 +8,8 @@ const app = express(); // Middlewares of express server app.use(express.json()); app.use('/players', require('./routes/players')); +app.use('/ranking', require('./routes/ranking')); +app.use('/games', require('./routes/games')); app.use('/login', require('./routes/login')) app.use(require('./routes/invalidRoute')); diff --git a/controller/player/deleteRolls.js b/controller/games/deleteRolls.js similarity index 100% rename from controller/player/deleteRolls.js rename to controller/games/deleteRolls.js diff --git a/controller/player/getRolls.js b/controller/games/getRolls.js similarity index 81% rename from controller/player/getRolls.js rename to controller/games/getRolls.js index d2e93e9b8..5ce845b31 100644 --- a/controller/player/getRolls.js +++ b/controller/games/getRolls.js @@ -2,12 +2,14 @@ const {Players, Rolls} = require('../../models/dices'); module.exports = async function (req, res) { try { + // Check if user exists const user = await Players.findOne({ - where: { username: parseInt(req.params.id) }, + where: { id: parseInt(req.params.id) }, }); - if(!user) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request + if(!user) return res.status(400).send({ status: "fail", message: "user id not found"}); // 400 - Bad request + // Get all the rolls of this player let rolls = await Rolls.findAll({ where: { playerId: user.id }, }); diff --git a/controller/player/rollDices.js b/controller/games/rollDices.js similarity index 97% rename from controller/player/rollDices.js rename to controller/games/rollDices.js index dcb4703b3..de9e73210 100644 --- a/controller/player/rollDices.js +++ b/controller/games/rollDices.js @@ -8,6 +8,7 @@ module.exports = async function (req, res) { }); if(!user) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request + // Roll dices //Math.floor(Math.random()*(max-min+1)+min) for number between [1,6] let dice1 = Math.floor(Math.random()*(6-1+1)+1); let dice2 = Math.floor(Math.random()*(6-1+1)+1); diff --git a/controller/ranking/getLoser.js b/controller/ranking/getLoser.js index d6e38b9dc..abe66b822 100644 --- a/controller/ranking/getLoser.js +++ b/controller/ranking/getLoser.js @@ -1,14 +1,14 @@ const {Players, Rolls} = require ('../../models/dices'); const Sequelize = require('sequelize'); -module.exports = async function getPlayers(req, res) { +module.exports = async (req, res) => { try { let players = await Players.findAll({ include: [{ model: Rolls, required: false }], - attributes: ['id',[Sequelize.fn('AVG', Sequelize.col('win')), 'win']], + attributes: ['id', 'username',[Sequelize.fn('AVG', Sequelize.col('win')), 'win']], group: 'id' }); @@ -18,21 +18,35 @@ module.exports = async function getPlayers(req, res) { let rank = 1; - let playersData = players.map(i => { - return { - playerId: i.dataValues.id, - percentage: (i.dataValues.win) ? i.dataValues.win:0, - rankingPosition: rank++} - }); + let player = + players + .filter(p => p.dataValues.win) + .map(i => { + return { + playerId: i.dataValues.id, + username: i.dataValues.username, + percentage: i.dataValues.win, + rankingPosition: rank++ + } + }); - playersData = playersData[playersData.length - 1]; + // Check if there is no rolls yet + if (Object.keys(player).length === 0) { + res.status(404).send({ + status: "fail", + data: { + message: "There is no ranking yet" + } + }); + } else { - res.status(200).send({ - status: "success", - data: { - players: playersData - } - }); + player = player[player.length - 1]; + + res.status(200).send({ + status: "success", + player + }); + } } catch (err) { res.status(500).send({ diff --git a/controller/ranking/getRanking.js b/controller/ranking/getRanking.js index dab1822ce..dca56bd69 100644 --- a/controller/ranking/getRanking.js +++ b/controller/ranking/getRanking.js @@ -1,37 +1,52 @@ const {Players, Rolls} = require ('../../models/dices'); const Sequelize = require('sequelize'); -module.exports = async function getPlayers(req, res) { +module.exports = async (req, res) => { try { let players = await Players.findAll({ include: [{ model: Rolls, required: false }], - attributes: ['id',[Sequelize.fn('AVG', Sequelize.col('win')), 'win']], + attributes: ['id','username',[Sequelize.fn('AVG', Sequelize.col('win')), 'win', ]], group: 'id' }); - players.sort(function(a,b){ + console.log(players) + + // Filter for players that have rolls. i.e. win !== null + players = players.filter(p => p.dataValues.win).sort(function(a,b) { return b.dataValues.win - a.dataValues.win; }); - let rank = 1; - - let playersData = players.map(i => { - return { - playerId: i.dataValues.id, - percentage: (i.dataValues.win) ? i.dataValues.win:0, - rankingPosition: rank++} - }); + // Check if there is a ranking + if (players.length === 0) { + res.status(404).send({ + status: "fail", + data: { + message: "There is no ranking yet" + } + }); - res.status(200).send({ - status: "success", - data: { - players: playersData - } - }); + } else { + let rank = 1; + players = players.map(i => { + return { + playerId: i.dataValues.id, + username: i.dataValues.username, + percentage: i.dataValues.win, + rankingPosition: rank++ + } + }); + + res.status(200).send({ + status: "success", + data: { + players + } + }); + } } catch (err) { res.status(500).send({ status: 'error', diff --git a/controller/ranking/getWinner.js b/controller/ranking/getWinner.js index f116d44f9..b21afc020 100644 --- a/controller/ranking/getWinner.js +++ b/controller/ranking/getWinner.js @@ -1,14 +1,14 @@ const {Players, Rolls} = require ('../../models/dices'); const Sequelize = require('sequelize'); -module.exports = async function getPlayers(req, res) { +module.exports = async (req, res) => { try { let players = await Players.findAll({ include: [{ model: Rolls, required: false }], - attributes: ['id',[Sequelize.fn('AVG', Sequelize.col('win')), 'win']], + attributes: ['id', 'username',[Sequelize.fn('AVG', Sequelize.col('win')), 'win']], group: 'id' }); @@ -18,21 +18,35 @@ module.exports = async function getPlayers(req, res) { let rank = 1; - let playersData = players.map(i => { - return { - playerId: i.dataValues.id, - percentage: (i.dataValues.win) ? i.dataValues.win:0, - rankingPosition: rank++} - }); + let player = + players + .filter(p => p.dataValues.win) + .map(i => { + return { + playerId: i.dataValues.id, + username: i.dataValues.username, + percentage: i.dataValues.win, + rankingPosition: rank++ + } + }); - playersData = playersData[0]; + // Check if there is no rolls yet + if (Object.keys(player).length === 0) { + res.status(404).send({ + status: "fail", + data: { + message: "There is no ranking yet" + } + }); + } else { - res.status(200).send({ - status: "success", - data: { - players: playersData - } - }); + player = player[0]; + + res.status(200).send({ + status: "success", + player + }); + } } catch (err) { res.status(500).send({ diff --git a/routes/games.js b/routes/games.js new file mode 100644 index 000000000..46be1ca84 --- /dev/null +++ b/routes/games.js @@ -0,0 +1,8 @@ +const express = require('express'); +const router = express.Router(); + +router.get('/:id', require('../controller/games/getRolls')); +router.post('/:id', require('../controller/games/rollDices')); +router.delete('/:id', require('../controller/games/deleteRolls')); + +module.exports = router; diff --git a/routes/players.js b/routes/players.js index ff6176ef5..75dc2675a 100644 --- a/routes/players.js +++ b/routes/players.js @@ -1,24 +1,9 @@ const express = require('express'); const router = express.Router(); -const rollDices = require('../controller/player/rollDices'); -const deleteRolls = require('../controller/player/deleteRolls'); -const getRolls = require('../controller/player/getRolls'); -const getRanking = require('../controller/ranking/getRanking'); -const getLoser = require('../controller/ranking/getLoser'); -const getWinner = require('../controller/ranking/getWinner'); - router.get('/', require('../controller/player/getPlayers')); router.post('/', require('../controller/player/addPlayer')); router.put('/:id', require('../controller/player/updatePlayer')); router.delete('/:id', require('../controller/player/deletePlayer')); - -router.post('/:id/games', rollDices); -router.delete('/:id/games', deleteRolls); -router.get('/:id/games', getRolls); -router.get('/ranking', getRanking); -router.get('/ranking/loser', getLoser); -router.get('/ranking/winner', getWinner); - module.exports = router; diff --git a/routes/ranking.js b/routes/ranking.js new file mode 100644 index 000000000..c27e4a22c --- /dev/null +++ b/routes/ranking.js @@ -0,0 +1,8 @@ +const express = require('express'); +const router = express.Router(); + +router.get('/', require('../controller/ranking/getRanking')); +router.get('/loser', require('../controller/ranking/getLoser')); +router.get('/winner', require('../controller/ranking/getWinner')); + +module.exports = router; From 232a8e11e94a37d4338fcb058647fb78b75092d4 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Fri, 13 May 2022 16:20:32 +0200 Subject: [PATCH 17/24] upd --- controller/games/deleteRolls.js | 14 +++----- controller/games/getRolls.js | 18 +++------- controller/games/rollDices.js | 22 ++---------- controller/ranking/getLoser.js | 50 ++++---------------------- controller/ranking/getRanking.js | 48 +++---------------------- controller/ranking/getWinner.js | 50 ++++---------------------- services/gamesUtils.js | 61 ++++++++++++++++++++++++++++++++ services/rankingUtils.js | 47 ++++++++++++++++++++++++ 8 files changed, 137 insertions(+), 173 deletions(-) create mode 100644 services/gamesUtils.js create mode 100644 services/rankingUtils.js diff --git a/controller/games/deleteRolls.js b/controller/games/deleteRolls.js index 7c40abefc..c4c354e9b 100644 --- a/controller/games/deleteRolls.js +++ b/controller/games/deleteRolls.js @@ -1,21 +1,17 @@ -const {Players, Rolls} = require('../../models/dices'); +const {deleteRolls} = require('../../services/gamesUtils') module.exports = async function (req, res) { try { // Check if user exists - const user = await Players.findOne({ - where: { id: parseInt(req.params.id) }, - }); - if(!user) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request + let result = await deleteRolls(req,res); - let dat = await Rolls.destroy({ - where: { playerId: user.id }, - }); + // I know this is not the best way of doing this but I dont want to build a cool loggin system right now... + if (result === 1) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request res.status(200).send({ status: "success", data: { - username: user.username, + playerId: parseInt(req.params.id), message: "Rolls deleted" } }); diff --git a/controller/games/getRolls.js b/controller/games/getRolls.js index 5ce845b31..4cd8bea8e 100644 --- a/controller/games/getRolls.js +++ b/controller/games/getRolls.js @@ -1,25 +1,15 @@ -const {Players, Rolls} = require('../../models/dices'); +const {getRolls} = require('../../services/gamesUtils') module.exports = async function (req, res) { try { - // Check if user exists - const user = await Players.findOne({ - where: { id: parseInt(req.params.id) }, - }); - if(!user) return res.status(400).send({ status: "fail", message: "user id not found"}); // 400 - Bad request + let rolls = await getRolls(req, res); - // Get all the rolls of this player - let rolls = await Rolls.findAll({ - where: { playerId: user.id }, - }); + if (!rolls) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request res.status(200).send({ status: "success", - data: { - username: user.username, - rolls - } + rolls }); } catch (err) { diff --git a/controller/games/rollDices.js b/controller/games/rollDices.js index de9e73210..3e1121f4e 100644 --- a/controller/games/rollDices.js +++ b/controller/games/rollDices.js @@ -1,26 +1,10 @@ -const {Players, Rolls} = require ('../../models/dices'); +const { rollDices } = require('../../services/gamesUtils'); module.exports = async function (req, res) { try { - // Check if user exists - const user = await Players.findOne({ - where: { id: parseInt(req.params.id) }, - }); - if(!user) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request + const roll = await rollDices(req, res); - // Roll dices - //Math.floor(Math.random()*(max-min+1)+min) for number between [1,6] - let dice1 = Math.floor(Math.random()*(6-1+1)+1); - let dice2 = Math.floor(Math.random()*(6-1+1)+1); - - const roll = { - playerId: user.id, - dice1, - dice2, - win: ((dice1+dice2) === 7 ? 1 : 0) - }; - - await Rolls.create(roll) + if (!roll) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request res.status(200).send({ status: "success", diff --git a/controller/ranking/getLoser.js b/controller/ranking/getLoser.js index abe66b822..196e5687c 100644 --- a/controller/ranking/getLoser.js +++ b/controller/ranking/getLoser.js @@ -1,52 +1,14 @@ -const {Players, Rolls} = require ('../../models/dices'); -const Sequelize = require('sequelize'); +const {getLoser} = require('../../services/rankingUtils') module.exports = async (req, res) => { try { - let players = await Players.findAll({ - include: [{ - model: Rolls, - required: false - }], - attributes: ['id', 'username',[Sequelize.fn('AVG', Sequelize.col('win')), 'win']], - group: 'id' - }); + let loser = await getLoser(); - players.sort(function(a,b){ - return b.dataValues.win - a.dataValues.win; + res.status(200).send({ + status: "success", + loser }); - - let rank = 1; - - let player = - players - .filter(p => p.dataValues.win) - .map(i => { - return { - playerId: i.dataValues.id, - username: i.dataValues.username, - percentage: i.dataValues.win, - rankingPosition: rank++ - } - }); - - // Check if there is no rolls yet - if (Object.keys(player).length === 0) { - res.status(404).send({ - status: "fail", - data: { - message: "There is no ranking yet" - } - }); - } else { - - player = player[player.length - 1]; - - res.status(200).send({ - status: "success", - player - }); - } + } catch (err) { res.status(500).send({ diff --git a/controller/ranking/getRanking.js b/controller/ranking/getRanking.js index dca56bd69..5e976601b 100644 --- a/controller/ranking/getRanking.js +++ b/controller/ranking/getRanking.js @@ -1,52 +1,14 @@ -const {Players, Rolls} = require ('../../models/dices'); -const Sequelize = require('sequelize'); +const {getRanking} = require('../../services/rankingUtils'); module.exports = async (req, res) => { try { - let players = await Players.findAll({ - include: [{ - model: Rolls, - required: false - }], - attributes: ['id','username',[Sequelize.fn('AVG', Sequelize.col('win')), 'win', ]], - group: 'id' - }); - - console.log(players) + let ranking = await getRanking(); - // Filter for players that have rolls. i.e. win !== null - players = players.filter(p => p.dataValues.win).sort(function(a,b) { - return b.dataValues.win - a.dataValues.win; + res.status(200).send({ + status: "success", + ranking }); - // Check if there is a ranking - if (players.length === 0) { - res.status(404).send({ - status: "fail", - data: { - message: "There is no ranking yet" - } - }); - - } else { - let rank = 1; - - players = players.map(i => { - return { - playerId: i.dataValues.id, - username: i.dataValues.username, - percentage: i.dataValues.win, - rankingPosition: rank++ - } - }); - - res.status(200).send({ - status: "success", - data: { - players - } - }); - } } catch (err) { res.status(500).send({ status: 'error', diff --git a/controller/ranking/getWinner.js b/controller/ranking/getWinner.js index b21afc020..f61c98e88 100644 --- a/controller/ranking/getWinner.js +++ b/controller/ranking/getWinner.js @@ -1,52 +1,14 @@ -const {Players, Rolls} = require ('../../models/dices'); -const Sequelize = require('sequelize'); +const {getWinner} = require('../../services/rankingUtils') module.exports = async (req, res) => { try { - let players = await Players.findAll({ - include: [{ - model: Rolls, - required: false - }], - attributes: ['id', 'username',[Sequelize.fn('AVG', Sequelize.col('win')), 'win']], - group: 'id' - }); + let winner = await getWinner(); - players.sort(function(a,b){ - return b.dataValues.win - a.dataValues.win; + res.status(200).send({ + status: "success", + winner }); - - let rank = 1; - - let player = - players - .filter(p => p.dataValues.win) - .map(i => { - return { - playerId: i.dataValues.id, - username: i.dataValues.username, - percentage: i.dataValues.win, - rankingPosition: rank++ - } - }); - - // Check if there is no rolls yet - if (Object.keys(player).length === 0) { - res.status(404).send({ - status: "fail", - data: { - message: "There is no ranking yet" - } - }); - } else { - - player = player[0]; - - res.status(200).send({ - status: "success", - player - }); - } + } catch (err) { res.status(500).send({ diff --git a/services/gamesUtils.js b/services/gamesUtils.js new file mode 100644 index 000000000..c1b357d7e --- /dev/null +++ b/services/gamesUtils.js @@ -0,0 +1,61 @@ +const database = require('../config/database'); +const {Players, Rolls} = require ('../models/dices'); + +async function rollDices (req, res) { + + // Check if user exists + const user = await Players.findOne({ + where: { id: parseInt(req.params.id) }, + }); + + // If user does not exist exit here + if(!user) return; + + // Roll dices + //Math.floor(Math.random()*(max-min+1)+min) for number between [1,6] + let dice1 = Math.floor(Math.random()*(6-1+1)+1); + let dice2 = Math.floor(Math.random()*(6-1+1)+1); + + const roll = { + playerId: user.id, + dice1, + dice2, + win: ((dice1+dice2) === 7 ? 1 : 0) + }; + + await Rolls.create(roll); + + return roll; +}; + +async function getRolls(req, res) { + console.log(1) + // Check if user exists + const user = await Players.findOne({ + where: { id: parseInt(req.params.id) }, + }); + + // If user does not exist exit here + if(!user) return + + // Get all the rolls of this player + let rolls = await Rolls.findAll({ + where: { playerId: user.id }, + }); + + return rolls; +} + +async function deleteRolls(req, res) { + const user = await Players.findOne({ + where: { id: parseInt(req.params.id) }, + }); + if(!user) return 1; //user not found + + let result = await Rolls.destroy({ + where: { playerId: user.id }, + }); + + return result; +} +module.exports = {rollDices, getRolls, deleteRolls} \ No newline at end of file diff --git a/services/rankingUtils.js b/services/rankingUtils.js new file mode 100644 index 000000000..3625f97f7 --- /dev/null +++ b/services/rankingUtils.js @@ -0,0 +1,47 @@ +const {Players, Rolls} = require ('../models/dices'); +const Sequelize = require('sequelize'); + +async function getRanking() { + let players = await Players.findAll({ + include: [{ + model: Rolls, + required: false + }], + attributes: ['id','username',[Sequelize.fn('AVG', Sequelize.col('win')), 'win', ]], + group: 'id' + }); + + let rank = 1; + + // Filter for players that have rolls. i.e. win !== null + // and sort by its winrate + let ranking = + players + .filter(p => p.dataValues.win) + .sort((a,b) => b.dataValues.win - a.dataValues.win) + .map(i => { + return { + playerId: i.dataValues.id, + username: i.dataValues.username, + percentage: i.dataValues.win, + rankingPosition: rank++ + } + }); + + return ranking; +} + +async function getLoser() { + let ranking = await getRanking(); + console.log(ranking) + console.log(ranking[ranking.length - 1]) + + return ranking[ranking.length - 1]; +} + +async function getWinner() { + let ranking = await getRanking(); + return ranking[0]; +} + +module.exports = {getRanking, getLoser, getWinner} \ No newline at end of file From 853d8543d09a3066b0d760e95f0eebc49bf8d2e3 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Fri, 13 May 2022 16:29:26 +0200 Subject: [PATCH 18/24] upd --- _http_requests/games.http | 12 +++++++--- _http_requests/player.http | 22 ++++++++++++++----- _http_requests/ranking.http | 12 +++++++--- .../games/{deleteRolls.js => deleteGames.js} | 6 ++--- controller/games/{getRolls.js => getGames.js} | 8 +++---- controller/games/{rollDices.js => runGame.js} | 10 ++++----- routes/games.js | 6 ++--- services/gamesUtils.js | 10 ++++----- 8 files changed, 52 insertions(+), 34 deletions(-) rename controller/games/{deleteRolls.js => deleteGames.js} (80%) rename controller/games/{getRolls.js => getGames.js} (63%) rename controller/games/{rollDices.js => runGame.js} (58%) diff --git a/_http_requests/games.http b/_http_requests/games.http index 64bba7fe2..8ced7f4ab 100644 --- a/_http_requests/games.http +++ b/_http_requests/games.http @@ -1,8 +1,14 @@ -### Get rolls of one player +################################################### +### GET GAMES ##################################### +################################################### GET http://localhost:5000/games/7 -### A player rolls dices +################################################### +### RUN GAME ###################################### +################################################### POST http://localhost:5000/games/7 -### Delete all rolls of a given player +################################################### +### DELETE GAMES ################################## +################################################### DELETE http://localhost:5000/games/7 \ No newline at end of file diff --git a/_http_requests/player.http b/_http_requests/player.http index e0359d0d0..988487a1a 100644 --- a/_http_requests/player.http +++ b/_http_requests/player.http @@ -1,7 +1,11 @@ -### Get players list +################################################### +### GET PLAYERS ################################### +################################################### GET http://localhost:5000/players -### Add player with username +################################################### +### ADD PLAYER #################################### +################################################### POST http://localhost:5000/players Content-Type: application/json @@ -9,11 +13,15 @@ Content-Type: application/json "username": "victor" } -### Add player ANONIM +################################################### +### ADD ANONIM #################################### +################################################### POST http://localhost:5000/players -### Modify players username +################################################### +### MODIFY PLAYER ################################# +################################################### PUT http://localhost:5000/players/1 Content-Type: application/json @@ -21,7 +29,9 @@ Content-Type: application/json "username": "javi" } -### Delete player -DELETE http://localhost:5000/players/5 +################################################### +### DELETE PLAYER ################################# +################################################### +DELETE http://localhost:5000/players/3 diff --git a/_http_requests/ranking.http b/_http_requests/ranking.http index 113985d06..818706de6 100644 --- a/_http_requests/ranking.http +++ b/_http_requests/ranking.http @@ -1,8 +1,14 @@ -### Get ranking +################################################### +### GET RANKING ################################### +################################################### GET http://localhost:5000/ranking -### Get winner +################################################### +### GET WINNER #################################### +################################################### GET http://localhost:5000/ranking/winner -### Get loser +################################################### +### GET LOSER ##################################### +################################################### GET http://localhost:5000/ranking/loser \ No newline at end of file diff --git a/controller/games/deleteRolls.js b/controller/games/deleteGames.js similarity index 80% rename from controller/games/deleteRolls.js rename to controller/games/deleteGames.js index c4c354e9b..2603e0c90 100644 --- a/controller/games/deleteRolls.js +++ b/controller/games/deleteGames.js @@ -1,9 +1,9 @@ -const {deleteRolls} = require('../../services/gamesUtils') +const {deleteGames} = require('../../services/gamesUtils') module.exports = async function (req, res) { try { // Check if user exists - let result = await deleteRolls(req,res); + let result = await deleteGames(req,res); // I know this is not the best way of doing this but I dont want to build a cool loggin system right now... if (result === 1) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request @@ -12,7 +12,7 @@ module.exports = async function (req, res) { status: "success", data: { playerId: parseInt(req.params.id), - message: "Rolls deleted" + message: "Games deleted" } }); diff --git a/controller/games/getRolls.js b/controller/games/getGames.js similarity index 63% rename from controller/games/getRolls.js rename to controller/games/getGames.js index 4cd8bea8e..b66fedbe1 100644 --- a/controller/games/getRolls.js +++ b/controller/games/getGames.js @@ -1,15 +1,15 @@ -const {getRolls} = require('../../services/gamesUtils') +const {getGames} = require('../../services/gamesUtils') module.exports = async function (req, res) { try { - let rolls = await getRolls(req, res); + let games = await getGames(req, res); - if (!rolls) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request + if (!games) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request res.status(200).send({ status: "success", - rolls + games }); } catch (err) { diff --git a/controller/games/rollDices.js b/controller/games/runGame.js similarity index 58% rename from controller/games/rollDices.js rename to controller/games/runGame.js index 3e1121f4e..5e543c369 100644 --- a/controller/games/rollDices.js +++ b/controller/games/runGame.js @@ -1,16 +1,14 @@ -const { rollDices } = require('../../services/gamesUtils'); +const { runGame } = require('../../services/gamesUtils'); module.exports = async function (req, res) { try { - const roll = await rollDices(req, res); + const game = await runGame(req, res); - if (!roll) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request + if (!game) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request res.status(200).send({ status: "success", - data: { - roll - } + game }); } catch (err) { diff --git a/routes/games.js b/routes/games.js index 46be1ca84..65aebf97b 100644 --- a/routes/games.js +++ b/routes/games.js @@ -1,8 +1,8 @@ const express = require('express'); const router = express.Router(); -router.get('/:id', require('../controller/games/getRolls')); -router.post('/:id', require('../controller/games/rollDices')); -router.delete('/:id', require('../controller/games/deleteRolls')); +router.get('/:id', require('../controller/games/getGames')); +router.post('/:id', require('../controller/games/runGame')); +router.delete('/:id', require('../controller/games/deleteGames')); module.exports = router; diff --git a/services/gamesUtils.js b/services/gamesUtils.js index c1b357d7e..7a71e4f8d 100644 --- a/services/gamesUtils.js +++ b/services/gamesUtils.js @@ -1,7 +1,7 @@ const database = require('../config/database'); const {Players, Rolls} = require ('../models/dices'); -async function rollDices (req, res) { +async function runGame (req, res) { // Check if user exists const user = await Players.findOne({ @@ -28,7 +28,7 @@ async function rollDices (req, res) { return roll; }; -async function getRolls(req, res) { +async function getGames(req, res) { console.log(1) // Check if user exists const user = await Players.findOne({ @@ -46,7 +46,7 @@ async function getRolls(req, res) { return rolls; } -async function deleteRolls(req, res) { +async function deleteGames(req, res) { const user = await Players.findOne({ where: { id: parseInt(req.params.id) }, }); @@ -55,7 +55,5 @@ async function deleteRolls(req, res) { let result = await Rolls.destroy({ where: { playerId: user.id }, }); - - return result; } -module.exports = {rollDices, getRolls, deleteRolls} \ No newline at end of file +module.exports = {runGame, getGames, deleteGames} \ No newline at end of file From 149815538f6b503d1fcc304a4e75d9ad3c0f2b56 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Fri, 13 May 2022 17:06:12 +0200 Subject: [PATCH 19/24] upd --- _http_requests/games.http | 6 +++--- _http_requests/player.http | 2 +- app.js | 6 +++--- controller/player/updatePlayer.js | 5 +++-- controller/ranking/getLoser.js | 2 ++ controller/ranking/getWinner.js | 2 ++ middlewares/middlewares.js | 15 +++++++++++++++ package-lock.json | 22 ++++++++++++++++++++++ package.json | 1 + routes/games.js | 19 ++++++++++++++++--- routes/players.js | 19 ++++++++++++++++--- services/gamesUtils.js | 2 +- 12 files changed, 85 insertions(+), 16 deletions(-) create mode 100644 middlewares/middlewares.js diff --git a/_http_requests/games.http b/_http_requests/games.http index 8ced7f4ab..225aad586 100644 --- a/_http_requests/games.http +++ b/_http_requests/games.http @@ -1,14 +1,14 @@ ################################################### ### GET GAMES ##################################### ################################################### -GET http://localhost:5000/games/7 +GET http://localhost:5000/games/2 ################################################### ### RUN GAME ###################################### ################################################### -POST http://localhost:5000/games/7 +POST http://localhost:5000/games/2 ################################################### ### DELETE GAMES ################################## ################################################### -DELETE http://localhost:5000/games/7 \ No newline at end of file +DELETE http://localhost:5000/games/1 \ No newline at end of file diff --git a/_http_requests/player.http b/_http_requests/player.http index 988487a1a..aa8060cfa 100644 --- a/_http_requests/player.http +++ b/_http_requests/player.http @@ -32,6 +32,6 @@ Content-Type: application/json ################################################### ### DELETE PLAYER ################################# ################################################### -DELETE http://localhost:5000/players/3 +DELETE http://localhost:5000/players/ diff --git a/app.js b/app.js index baa4727c5..70e9eaa32 100644 --- a/app.js +++ b/app.js @@ -5,6 +5,9 @@ require('dotenv').config() const express = require('express'); const app = express(); +// Create database if not exists +require('./services/createDatabase')(); + // Middlewares of express server app.use(express.json()); app.use('/players', require('./routes/players')); @@ -13,9 +16,6 @@ app.use('/games', require('./routes/games')); app.use('/login', require('./routes/login')) app.use(require('./routes/invalidRoute')); -// Create database if not exists -require('./services/createDatabase')(); - // Start server const PORT = process.env.API_PORT || 3000; app.listen(PORT, console.log(`Server started on port ${PORT}`)); diff --git a/controller/player/updatePlayer.js b/controller/player/updatePlayer.js index 83055f6ee..9bde917b1 100644 --- a/controller/player/updatePlayer.js +++ b/controller/player/updatePlayer.js @@ -7,8 +7,9 @@ module.exports = async (req, res) => { const player = await Players.findOne({where: { id: parseInt(req.params.id) }}); // Check if player ID does exist - if (!player) return res.status(400).send({ status: "fail", message: "player id not found"}); // 400 - Bad request - + if (!player) { + return res.status(400).send({ status: "fail", message: "player id not found"}); // 400 - Bad request + } // Check if username is provided if (!req.body.username) return res.status(400).send({ status: "fail", message: "username not provided"}); // 400 - Bad request diff --git a/controller/ranking/getLoser.js b/controller/ranking/getLoser.js index 196e5687c..45f8d0015 100644 --- a/controller/ranking/getLoser.js +++ b/controller/ranking/getLoser.js @@ -4,6 +4,8 @@ module.exports = async (req, res) => { try { let loser = await getLoser(); + if (!loser) loser = {}; + res.status(200).send({ status: "success", loser diff --git a/controller/ranking/getWinner.js b/controller/ranking/getWinner.js index f61c98e88..d7e74c3ff 100644 --- a/controller/ranking/getWinner.js +++ b/controller/ranking/getWinner.js @@ -4,6 +4,8 @@ module.exports = async (req, res) => { try { let winner = await getWinner(); + if (!winner) winner = {}; + res.status(200).send({ status: "success", winner diff --git a/middlewares/middlewares.js b/middlewares/middlewares.js new file mode 100644 index 000000000..8ae81e0ae --- /dev/null +++ b/middlewares/middlewares.js @@ -0,0 +1,15 @@ +const { validationResult } = require('express-validator'); + +const validation = ( req, res, next ) => { + + const error = validationResult(req); + if ( !error.isEmpty()) { + return res.status(400).send({ + status: 'fail', + error + }) + } + next(); +} + +module.exports = {validation}; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 880c5a23e..017c97df7 100755 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "bcrypt": "^5.0.1", "dotenv": "^9.0.2", "express": "^4.18.1", + "express-validator": "^6.14.0", "jsonwebtoken": "^8.5.1", "mysql2": "^2.3.3", "sequelize": "^6.19.0" @@ -808,6 +809,18 @@ "node": ">= 0.10.0" } }, + "node_modules/express-validator": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/express-validator/-/express-validator-6.14.0.tgz", + "integrity": "sha512-ZWHJfnRgePp3FKRSKMtnZVnD1s8ZchWD+jSl7UMseGIqhweCo1Z9916/xXBbJAa6PrA3pUZfkOvIsHZG4ZtIMw==", + "dependencies": { + "lodash": "^4.17.21", + "validator": "^13.7.0" + }, + "engines": { + "node": ">= 8.0.0" + } + }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -3325,6 +3338,15 @@ } } }, + "express-validator": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/express-validator/-/express-validator-6.14.0.tgz", + "integrity": "sha512-ZWHJfnRgePp3FKRSKMtnZVnD1s8ZchWD+jSl7UMseGIqhweCo1Z9916/xXBbJAa6PrA3pUZfkOvIsHZG4ZtIMw==", + "requires": { + "lodash": "^4.17.21", + "validator": "^13.7.0" + } + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", diff --git a/package.json b/package.json index 5e07649e4..30758b4c0 100755 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "bcrypt": "^5.0.1", "dotenv": "^9.0.2", "express": "^4.18.1", + "express-validator": "^6.14.0", "jsonwebtoken": "^8.5.1", "mysql2": "^2.3.3", "sequelize": "^6.19.0" diff --git a/routes/games.js b/routes/games.js index 65aebf97b..f0d9c85c6 100644 --- a/routes/games.js +++ b/routes/games.js @@ -1,8 +1,21 @@ const express = require('express'); const router = express.Router(); +const { check } = require('express-validator'); +const {validation} = require('../middlewares/middlewares'); -router.get('/:id', require('../controller/games/getGames')); -router.post('/:id', require('../controller/games/runGame')); -router.delete('/:id', require('../controller/games/deleteGames')); +router.get( '/:id', + check('id','Invalid ID').isInt(), + validation, + require('../controller/games/getGames')); + +router.post( '/:id', + check('id','Invalid ID').isInt(), + validation, + require('../controller/games/runGame')); + +router.delete( '/:id', + check('id','Invalid ID').isInt(), + validation, + require('../controller/games/deleteGames')); module.exports = router; diff --git a/routes/players.js b/routes/players.js index 75dc2675a..e2c5bd8c8 100644 --- a/routes/players.js +++ b/routes/players.js @@ -1,9 +1,22 @@ const express = require('express'); const router = express.Router(); +const { check, body } = require('express-validator'); +const {validation} = require('../middlewares/middlewares'); router.get('/', require('../controller/player/getPlayers')); -router.post('/', require('../controller/player/addPlayer')); -router.put('/:id', require('../controller/player/updatePlayer')); -router.delete('/:id', require('../controller/player/deletePlayer')); + +router.post( '/', + require('../controller/player/addPlayer')); + +router.put( '/:id', + check('id','Invalid ID').isInt(), + body('username').exists(), + validation, + require('../controller/player/updatePlayer')); + +router.delete( '/:id', + check('id','Invalid ID').isInt(), + validation, + require('../controller/player/deletePlayer')); module.exports = router; diff --git a/services/gamesUtils.js b/services/gamesUtils.js index 7a71e4f8d..660a9f0c1 100644 --- a/services/gamesUtils.js +++ b/services/gamesUtils.js @@ -29,7 +29,7 @@ async function runGame (req, res) { }; async function getGames(req, res) { - console.log(1) + // Check if user exists const user = await Players.findOne({ where: { id: parseInt(req.params.id) }, From ad4e9aa1095765a8649f6a15a1a490a46018eff6 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Fri, 13 May 2022 17:53:12 +0200 Subject: [PATCH 20/24] basic authentication using bcrypt --- _http_requests/login.http | 11 +++++++++++ controller/login/login.js | 20 +++----------------- middlewares/middlewares.js | 28 +++++++++++++++++++++++++++- routes/login.js | 9 ++++++++- 4 files changed, 49 insertions(+), 19 deletions(-) create mode 100644 _http_requests/login.http diff --git a/_http_requests/login.http b/_http_requests/login.http new file mode 100644 index 000000000..390b1018b --- /dev/null +++ b/_http_requests/login.http @@ -0,0 +1,11 @@ +################################################### +### GET JWT ####################################### +################################################### +POST http://localhost:5000/login +Content-Type: application/json + +{ + "username": "victor", + "password": "123456" +} + diff --git a/controller/login/login.js b/controller/login/login.js index 8b14cf6c6..66782c9f5 100644 --- a/controller/login/login.js +++ b/controller/login/login.js @@ -1,25 +1,11 @@ require('dotenv').config() +const bcrypt = require('bcrypt') -module.exports = async function login(req, res) { +module.exports = async (req, res) => { try { - if (!req.body.username) { - return res.status(400).send({ status: "fail", message: "username property not found"}); // 400 - Bad request - } - - const username = req.body.username; - const user = { name: username }; - - const accessToken = jwt.sign(user, process.env.ACCESS_TOKEN_SECRET); - - res.status(200).send({ - status: "success", - data: { - id: player.id, - username: player.username, - } - }); + res.status(200).send("Success"); } catch (err) { res.status(500).send({ diff --git a/middlewares/middlewares.js b/middlewares/middlewares.js index 8ae81e0ae..9a158b560 100644 --- a/middlewares/middlewares.js +++ b/middlewares/middlewares.js @@ -1,5 +1,7 @@ const { validationResult } = require('express-validator'); +const bcrypt = require('bcrypt') +// Middleware for express validator const validation = ( req, res, next ) => { const error = validationResult(req); @@ -12,4 +14,28 @@ const validation = ( req, res, next ) => { next(); } -module.exports = {validation}; \ No newline at end of file +// Middleware for authentication +const authentication = async (req, res, next) => { + // There is only one administrator. + // It is stored in plain text here. + // We will store this info in a DB in the Chat exercice + const admin = { + username: "victor", + password: "123456", + hashedPassword: "$2b$10$.NsUV4KYZ.VwYKr5u/FLCOHm3kgnru2SPrTTuZi/hvhrWo53jxgOq" + } + + if ( req.body.username !== admin.username || + ! await bcrypt.compare(req.body.password, admin.hashedPassword)) { + + return res.status(400).send({ + status: 'fail', + message: "Wrong credentials" + }) + } + + next() +} + + +module.exports = {validation, authentication}; \ No newline at end of file diff --git a/routes/login.js b/routes/login.js index ed1d92185..47af4a5ae 100644 --- a/routes/login.js +++ b/routes/login.js @@ -1,8 +1,15 @@ const express = require('express'); const router = express.Router(); +const { body } = require('express-validator'); +const {validation, authentication} = require('../middlewares/middlewares'); const login = require('../controller/login/login'); -router.post('/login', login); +router.post( '/', + body('username').exists(), + body('password').exists(), + validation, + authentication, + login); module.exports = router; From 3a16f043e8203121ef091e4441b0972bfde05846 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Sat, 14 May 2022 19:50:03 +0200 Subject: [PATCH 21/24] upd --- _http_requests/games.http | 7 +++--- _http_requests/login.http | 13 ++++++++++- _http_requests/player.http | 5 ++--- app.js | 3 ++- controller/games/deleteGames.js | 2 ++ controller/login/login.js | 13 +++++++++-- controller/login/register.js | 26 +++++++++++++++++++++ middlewares/middlewares.js | 40 +++++++++++++++++++++------------ models/dices.js | 18 ++++++++++++++- routes/games.js | 3 ++- routes/invalidRoute.js | 8 ------- routes/login.js | 7 ++++++ routes/players.js | 3 ++- services/createDatabase.js | 4 ++-- 14 files changed, 115 insertions(+), 37 deletions(-) create mode 100644 controller/login/register.js delete mode 100644 routes/invalidRoute.js diff --git a/_http_requests/games.http b/_http_requests/games.http index 225aad586..00d5ed342 100644 --- a/_http_requests/games.http +++ b/_http_requests/games.http @@ -1,14 +1,15 @@ ################################################### ### GET GAMES ##################################### ################################################### -GET http://localhost:5000/games/2 +GET http://localhost:5000/games/1 ################################################### ### RUN GAME ###################################### ################################################### -POST http://localhost:5000/games/2 +POST http://localhost:5000/games/1 ################################################### ### DELETE GAMES ################################## ################################################### -DELETE http://localhost:5000/games/1 \ No newline at end of file +DELETE http://localhost:5000/games/1 +Authorization: Bearer ___PUT_YOUR_TOKEN_HERE___ \ No newline at end of file diff --git a/_http_requests/login.http b/_http_requests/login.http index 390b1018b..336739578 100644 --- a/_http_requests/login.http +++ b/_http_requests/login.http @@ -1,7 +1,18 @@ +################################################### +### REGISTER ADMIN ################################ +################################################### +POST http://localhost:5000/login/register +Content-Type: application/json + +{ + "username": "victor", + "password": "123456" +} + ################################################### ### GET JWT ####################################### ################################################### -POST http://localhost:5000/login +POST http://localhost:5000/login/ Content-Type: application/json { diff --git a/_http_requests/player.http b/_http_requests/player.http index aa8060cfa..1f033855b 100644 --- a/_http_requests/player.http +++ b/_http_requests/player.http @@ -18,7 +18,6 @@ Content-Type: application/json ################################################### POST http://localhost:5000/players - ################################################### ### MODIFY PLAYER ################################# ################################################### @@ -32,6 +31,6 @@ Content-Type: application/json ################################################### ### DELETE PLAYER ################################# ################################################### -DELETE http://localhost:5000/players/ - +DELETE http://localhost:5000/players/1 +Authorization: Bearer ___PUT_YOUR_TOKEN_HERE___ diff --git a/app.js b/app.js index 70e9eaa32..58c0d8c00 100644 --- a/app.js +++ b/app.js @@ -14,7 +14,8 @@ app.use('/players', require('./routes/players')); app.use('/ranking', require('./routes/ranking')); app.use('/games', require('./routes/games')); app.use('/login', require('./routes/login')) -app.use(require('./routes/invalidRoute')); + +app.use((req, res) => res.status(404).send({ status: "fail", message: "PAGE NOT FOUND"})); // Start server const PORT = process.env.API_PORT || 3000; diff --git a/controller/games/deleteGames.js b/controller/games/deleteGames.js index 2603e0c90..a39930902 100644 --- a/controller/games/deleteGames.js +++ b/controller/games/deleteGames.js @@ -8,6 +8,8 @@ module.exports = async function (req, res) { // I know this is not the best way of doing this but I dont want to build a cool loggin system right now... if (result === 1) return res.status(400).send({ status: "fail", message: "user not found"}); // 400 - Bad request + console.log(req.user) + res.status(200).send({ status: "success", data: { diff --git a/controller/login/login.js b/controller/login/login.js index 66782c9f5..20f29da07 100644 --- a/controller/login/login.js +++ b/controller/login/login.js @@ -1,11 +1,20 @@ require('dotenv').config() -const bcrypt = require('bcrypt') + +const jwt = require('jsonwebtoken') +const {Admins} = require('../../models/dices') + +//require('crypto').randomBytes(64).toString('hex') module.exports = async (req, res) => { try { + const user = { + username: req.body.username + } + + const accessToken = jwt.sign(user, process.env.ACCESS_TOKEN_SECRET) - res.status(200).send("Success"); + res.json(accessToken); } catch (err) { res.status(500).send({ diff --git a/controller/login/register.js b/controller/login/register.js new file mode 100644 index 000000000..dbf18ff71 --- /dev/null +++ b/controller/login/register.js @@ -0,0 +1,26 @@ +const bcrypt = require('bcrypt') +const {Admins} = require ('../../models/dices'); + +module.exports = async (req, res) => { + + try { + const user = await Admins.findOne({ + where: { username: req.body.username.toLowerCase() }, + }); + + if(user !== null) return res.status(400).send({ status: "fail", message: `user ${req.body.username.toLowerCase()} already registered as admin`}); + + const hashedPassword = await bcrypt.hash(req.body.password, 10) + + player = await Admins.create({ username: req.body.username.toLowerCase(), password: hashedPassword }) + res.status(201).send({ + status: "success", + message: `user ${req.body.username.toLowerCase()} registered as admin` }); + + } catch (err) { + res.status(500).send({ + status: 'error', + message: err.message + }) + } +} diff --git a/middlewares/middlewares.js b/middlewares/middlewares.js index 9a158b560..2b8f2be30 100644 --- a/middlewares/middlewares.js +++ b/middlewares/middlewares.js @@ -1,9 +1,11 @@ +require('dotenv').config(); const { validationResult } = require('express-validator'); -const bcrypt = require('bcrypt') +const jwt = require('jsonwebtoken'); +const {Admins} = require ('../models/dices'); +const bcrypt = require('bcrypt'); // Middleware for express validator const validation = ( req, res, next ) => { - const error = validationResult(req); if ( !error.isEmpty()) { return res.status(400).send({ @@ -16,26 +18,36 @@ const validation = ( req, res, next ) => { // Middleware for authentication const authentication = async (req, res, next) => { - // There is only one administrator. - // It is stored in plain text here. - // We will store this info in a DB in the Chat exercice - const admin = { - username: "victor", - password: "123456", - hashedPassword: "$2b$10$.NsUV4KYZ.VwYKr5u/FLCOHm3kgnru2SPrTTuZi/hvhrWo53jxgOq" - } - if ( req.body.username !== admin.username || - ! await bcrypt.compare(req.body.password, admin.hashedPassword)) { + const user = await Admins.findOne({ + where: { username: req.body.username.toLowerCase() }, + }); + + if(user === null) return res.status(400).send({ status: "fail", message: `user ${req.body.username.toLowerCase()} not registered as Admin`}); + + if ( ! await bcrypt.compare(req.body.password, user.dataValues.password)) { return res.status(400).send({ status: 'fail', - message: "Wrong credentials" + message: "Wrong password" }) } next() } +const authJWT = async (req, res, next) => { + const authHeader = req.headers['authorization'] + const token = authHeader && authHeader.split(' ')[1] // "Bearer TOKEN" + if (token === null) return res.sendStatus(401) + + // Here we could jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, (err, user) + // and then set req.user = user to have the req.user in the future route + jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, (err) => { + if (err) return res.sendStatus(403) + next() + }) +} + -module.exports = {validation, authentication}; \ No newline at end of file +module.exports = {validation, authentication, authJWT}; \ No newline at end of file diff --git a/models/dices.js b/models/dices.js index bd512e1c7..5c781e1de 100644 --- a/models/dices.js +++ b/models/dices.js @@ -24,6 +24,18 @@ const Rolls = db.define('rolls', { } }) +const Admins = db.define('admins', { + username: { + type: Sequelize.STRING, + allowNull: false + }, + password: { + type: Sequelize.STRING, + allowNull: false + } +}) + + Players.hasMany(Rolls); // one-to-many relationship Rolls.belongsTo(Players); @@ -35,4 +47,8 @@ Rolls.sync() .then() .catch(err => console.log(err)); -module.exports = {Players, Rolls}; +Admins.sync() +.then() +.catch(err => console.log(err)); + +module.exports = {Players, Rolls, Admins}; diff --git a/routes/games.js b/routes/games.js index f0d9c85c6..57023c437 100644 --- a/routes/games.js +++ b/routes/games.js @@ -1,7 +1,7 @@ const express = require('express'); const router = express.Router(); const { check } = require('express-validator'); -const {validation} = require('../middlewares/middlewares'); +const {validation, authJWT} = require('../middlewares/middlewares'); router.get( '/:id', check('id','Invalid ID').isInt(), @@ -16,6 +16,7 @@ router.post( '/:id', router.delete( '/:id', check('id','Invalid ID').isInt(), validation, + authJWT, require('../controller/games/deleteGames')); module.exports = router; diff --git a/routes/invalidRoute.js b/routes/invalidRoute.js deleted file mode 100644 index 368b6f2d3..000000000 --- a/routes/invalidRoute.js +++ /dev/null @@ -1,8 +0,0 @@ -const express = require("express"); -const router = express.Router(); - -router.get("*", (req, res) => { - res.status(404).send({ status: "fail", message: "PAGE NOT FOUND"}); -}); - -module.exports = router; diff --git a/routes/login.js b/routes/login.js index 47af4a5ae..4dcf3efeb 100644 --- a/routes/login.js +++ b/routes/login.js @@ -4,6 +4,7 @@ const router = express.Router(); const { body } = require('express-validator'); const {validation, authentication} = require('../middlewares/middlewares'); const login = require('../controller/login/login'); +const register = require('../controller/login/register'); router.post( '/', body('username').exists(), @@ -12,4 +13,10 @@ router.post( '/', authentication, login); +router.post( '/register', + body('username').exists(), + body('password').exists(), + validation, + register); + module.exports = router; diff --git a/routes/players.js b/routes/players.js index e2c5bd8c8..8c12a62dd 100644 --- a/routes/players.js +++ b/routes/players.js @@ -1,7 +1,7 @@ const express = require('express'); const router = express.Router(); const { check, body } = require('express-validator'); -const {validation} = require('../middlewares/middlewares'); +const {validation, authJWT} = require('../middlewares/middlewares'); router.get('/', require('../controller/player/getPlayers')); @@ -17,6 +17,7 @@ router.put( '/:id', router.delete( '/:id', check('id','Invalid ID').isInt(), validation, + authJWT, require('../controller/player/deletePlayer')); module.exports = router; diff --git a/services/createDatabase.js b/services/createDatabase.js index a7b234008..f724a52db 100644 --- a/services/createDatabase.js +++ b/services/createDatabase.js @@ -6,9 +6,9 @@ module.exports = (async ()=>{ const connection = await mysql.createConnection({ host: process.env.DB_HOST, user: process.env.DB_USER, - password: process.env.DB_PASS }); + password: process.env.DB_PASS }); - const con = await connection.connect(); + await connection.connect(); await connection.query(`CREATE DATABASE IF NOT EXISTS \`${process.env.DB_NAME}\`;`); console.log(`Database ${process.env.DB_NAME} (re)created`); await connection.end(); From 3d0f81182d1326c859db7135192dfbf3c76abd42 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Sat, 14 May 2022 20:11:04 +0200 Subject: [PATCH 22/24] readme updated --- Postman 4.2.postman_collection.json | 36 ----------- README.md | 95 ++++++++++++++--------------- 2 files changed, 46 insertions(+), 85 deletions(-) delete mode 100644 Postman 4.2.postman_collection.json diff --git a/Postman 4.2.postman_collection.json b/Postman 4.2.postman_collection.json deleted file mode 100644 index ac10f123a..000000000 --- a/Postman 4.2.postman_collection.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "info": { - "_postman_id": "85bb1650-5b12-4d5f-beee-9fc7a618f7ce", - "name": "Postman 4.2", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" - }, - "item": [ - { - "name": "getPlayers", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "http://localhost:5000/", - "protocol": "http", - "host": [ - "localhost" - ], - "port": "5000", - "path": [ - "" - ] - } - }, - "response": [] - }, - { - "name": "addPlayer", - "request": { - "method": "GET", - "header": [] - }, - "response": [] - } - ] -} \ No newline at end of file diff --git a/README.md b/README.md index 940d86711..30d24d7a0 100644 --- a/README.md +++ b/README.md @@ -1,50 +1,47 @@ -# Node Initial Project - -### Project Structure - -Main structure of node.js project. Folders / files: - -- \_\_tests__. Tests folder. See [Jest Docs](https://jestjs.io/es-ES/docs/configuration) and [Chai Docs](https://www.chaijs.com/) -- app: - - config - - controllers - - crons - - middleware - - models - - routes - - tmp - - app.js. Entry point. -- .env. Environment descriptor. See [dotenv doc](https://www.npmjs.com/package/dotenv). -- .eslintrc. Linter JS, static code analyzer. See [EsLint Docs](https://eslint.org/docs/user-guide/configuring/configuration-files). -- .prettierignore. Code formatter. See [Prettier Config](https://prettier.io/docs/en/configuration.html) and [Prettier Ignore](https://prettier.io/docs/en/ignore.html). -- .ecosystem.config.js. Process Manage at runtime. See [PM2 Docs](https://pm2.keymetrics.io/). -- package.json. - -### Import project for use with WebStorm - -Follow the steps below: -* Clone the project from the Github Platform. Execute: - ``` - git clone [url project] - ``` -* Open the project downloaded. -![Open Project](img/webstorm_open.png) - - -### Import project for use with Visual Studio Code - -Follow the steps below: -* Clone the project from the Github Platform. Execute: - ``` - git clone [url project] - ``` -* Open the project downloaded. - ![Open Project](img/VSC_open.png) - - -### Utilities - -* [Node Developers Guide](https://nodejs.dev/learn) -* **.gitignore file** configuration. See [Official Docs](https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files). -* **Git branches**. See [Official Docs](https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell) +# Sprint 4 - Ex 4.2 + +Niveles 1 y 3 solucionados. El nivel 2 no lo haré ya que con el chat usaré mongoose en vez de sequelize. + +## Inicialización proyecto + +1- Renombrar/copiar el fichero .env-template -> .env +2- Setear los valores de tu servidor de MySQL (DB_USER, DB_PASS) y el puerto en el que se quiere ejectuar la API (API_PORT) +3- Instalar dependencias ejecutando en linea de comandos + + npm i + +4- Ejectuar el proyecto + + npm start + +## Testeo de la solución + +Para testear NO he usado postman. +He usado una extension de Visual Studio Code: https://marketplace.visualstudio.com/items?itemName=humao.rest-client +Muy intuitiva y facil de utilizar. + +*Los ficheros con todos las requests a enviar las puedes encontrar en la carpeta _http_request* + +Para enviar las requests verás que, una vez instalada la extensión, aparece un pequeño botón "send request" encima de cada request. + + +## Notas sobre la solución + +He creado los siguientes endpoints. Pienso que tienen más sentido que los que pide el enunciado + +get /players -> Devuelve listado de jugadores con su id +post /players -> Agrega un player (username = ANONIMO por defecto) +put /players/:id -> Cambia el username del player con :id +delete /players/:id -> Borra el player con :id (Habilitado solo a usuario administrador que proporciona JWT) + +get /games/:id -> Devuelve todos los lanzamientos del player :id +post /games/:id -> El player :id realiza un lanzamiento de dados +delete /games/:id -> Se borran todos los lanzamientos del player :id (Habilitado solo a usuario administrador que proporciona JWT) + +get /ranking -> Devuelve el ranking de todos los jugadores +get /ranking/winner -> Devuelve el jugador que tiene mayor porcentage de victorias +get /ranking/loser -> Devuelve el jugador que tiene menor porcentage de victorias + +post /login/register -> Registra un usuario como administrador en el sistema. Utiliza la libreria bcrypt para guardar el password hasheado en base de datos +post /login -> Obtencion del JWT si se autentica un usuario previamente registrado como administrador. \ No newline at end of file From 2c5f997de3ea039c03932367ab594dc8d497898f Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Sun, 29 May 2022 14:41:59 +0200 Subject: [PATCH 23/24] postman collection for testing --- .../Postman 4.2.postman_collection.json | 380 ++++++++++++++++++ 1 file changed, 380 insertions(+) create mode 100644 POSTMAN_COLLECTION/Postman 4.2.postman_collection.json diff --git a/POSTMAN_COLLECTION/Postman 4.2.postman_collection.json b/POSTMAN_COLLECTION/Postman 4.2.postman_collection.json new file mode 100644 index 000000000..913067002 --- /dev/null +++ b/POSTMAN_COLLECTION/Postman 4.2.postman_collection.json @@ -0,0 +1,380 @@ +{ + "info": { + "_postman_id": "7b1ec78d-12fa-4cbd-8edc-2573882fffae", + "name": "Postman 4.2", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "GAMES", + "item": [ + { + "name": "get games by player id", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:5000/games/1", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "5000", + "path": [ + "games", + "1" + ] + } + }, + "response": [] + }, + { + "name": "run games by player id", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "http://localhost:5000/games/1", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "5000", + "path": [ + "games", + "1" + ] + } + }, + "response": [] + }, + { + "name": "Delete games by player id and jwt", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "http://localhost:5000/games/1", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "5000", + "path": [ + "games", + "1" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "PLAYER", + "item": [ + { + "name": "getPlayers", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:5000/players", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "5000", + "path": [ + "players" + ] + } + }, + "response": [] + }, + { + "name": "addPlayer Victor", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"username\": \"Victor\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:5000/players", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "5000", + "path": [ + "players" + ] + } + }, + "response": [] + }, + { + "name": "addPlayer Paula", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"username\": \"Paula\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:5000/players", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "5000", + "path": [ + "players" + ] + } + }, + "response": [] + }, + { + "name": "addPlayer Omar", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"username\": \"Omar\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:5000/players", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "5000", + "path": [ + "players" + ] + } + }, + "response": [] + }, + { + "name": "add anonim", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "POST http://localhost:5000/players", + "protocol": "POST http", + "host": [ + "localhost" + ], + "port": "5000", + "path": [ + "players" + ] + } + }, + "response": [] + }, + { + "name": "updatePlayer Victor", + "request": { + "method": "PUT", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"username\": \"merche\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:5000/players/1", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "5000", + "path": [ + "players", + "1" + ] + } + }, + "response": [] + }, + { + "name": "deletePlayer with jwt", + "request": { + "auth": { + "type": "bearer" + }, + "method": "DELETE", + "header": [], + "url": { + "raw": "http://localhost:5000/players/1", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "5000", + "path": [ + "players", + "1" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "RANKING", + "item": [ + { + "name": "get ranking", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:5000/ranking", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "5000", + "path": [ + "ranking" + ] + } + }, + "response": [] + }, + { + "name": "get winner", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:5000/ranking/winner", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "5000", + "path": [ + "ranking", + "winner" + ] + } + }, + "response": [] + }, + { + "name": "get loser", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:5000/ranking/loser", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "5000", + "path": [ + "ranking", + "loser" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "LOGIN", + "item": [ + { + "name": "registerAdmin", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"username\": \"victor\",\r\n \"password\": \"123456\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:5000/login/register", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "5000", + "path": [ + "login", + "register" + ] + } + }, + "response": [] + }, + { + "name": "get JWT token", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"username\": \"victor\",\r\n \"password\": \"123456\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:5000/login/", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "5000", + "path": [ + "login", + "" + ] + } + }, + "response": [] + } + ] + } + ] +} \ No newline at end of file From 7d11e027138d6b9863cf42a0a1eb5c2a30bf94a6 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Sun, 29 May 2022 18:03:05 +0200 Subject: [PATCH 24/24] delete unnedded requirement --- services/gamesUtils.js | 1 - 1 file changed, 1 deletion(-) diff --git a/services/gamesUtils.js b/services/gamesUtils.js index 660a9f0c1..7ead06506 100644 --- a/services/gamesUtils.js +++ b/services/gamesUtils.js @@ -1,4 +1,3 @@ -const database = require('../config/database'); const {Players, Rolls} = require ('../models/dices'); async function runGame (req, res) {