├── .gitignore
├── frontend
├── .gitignore
├── README.md
├── package-lock.json
├── package.json
├── public
│ ├── favicon.png
│ └── index.html
├── scripts
│ └── setupTypeScript.js
├── src
│ ├── App.svelte
│ ├── global.css
│ └── main.js
└── webpack.config.js
├── models
└── Transactions.js
├── package-lock.json
├── package.json
├── routes
└── transactions.js
└── server.js
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/frontend/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | public/build/bundle.*
4 |
--------------------------------------------------------------------------------
/frontend/README.md:
--------------------------------------------------------------------------------
1 | # svelte app
2 |
3 | This is a project template for [Svelte](https://svelte.dev) apps. It lives at https://github.com/sveltejs/template-webpack.
4 |
5 | To create a new project based on this template using [degit](https://github.com/Rich-Harris/degit):
6 |
7 | ```bash
8 | npx degit sveltejs/template-webpack svelte-app
9 | cd svelte-app
10 | ```
11 |
12 | *Note that you will need to have [Node.js](https://nodejs.org) installed.*
13 |
14 |
15 | ## Get started
16 |
17 | Install the dependencies...
18 |
19 | ```bash
20 | cd svelte-app
21 | npm install
22 | ```
23 |
24 | ...then start webpack:
25 |
26 | ```bash
27 | npm run dev
28 | ```
29 |
30 | Navigate to [localhost:8080](http://localhost:8080). You should see your app running. Edit a component file in `src`, save it, and the page should reload with your changes.
31 |
32 |
33 | ## Deploying to the web
34 |
35 | ### With [now](https://zeit.co/now)
36 |
37 | Install `now` if you haven't already:
38 |
39 | ```bash
40 | npm install -g now
41 | ```
42 |
43 | Then, from within your project folder:
44 |
45 | ```bash
46 | now
47 | ```
48 |
49 | As an alternative, use the [Now desktop client](https://zeit.co/download) and simply drag the unzipped project folder to the taskbar icon.
50 |
51 | ### With [surge](https://surge.sh/)
52 |
53 | Install `surge` if you haven't already:
54 |
55 | ```bash
56 | npm install -g surge
57 | ```
58 |
59 | Then, from within your project folder:
60 |
61 | ```bash
62 | npm run build
63 | surge public
64 | ```
65 |
--------------------------------------------------------------------------------
/frontend/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "svelte-app",
3 | "version": "1.0.0",
4 | "devDependencies": {
5 | "cross-env": "^7.0.3",
6 | "css-loader": "^5.0.1",
7 | "mini-css-extract-plugin": "^1.3.4",
8 | "svelte": "^3.31.2",
9 | "svelte-loader": "^3.0.0",
10 | "webpack": "^5.16.0",
11 | "webpack-cli": "^4.4.0",
12 | "webpack-dev-server": "^3.11.2"
13 | },
14 | "scripts": {
15 | "build": "cross-env NODE_ENV=production webpack",
16 | "dev": "webpack serve --content-base public"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/frontend/public/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/syedashar1/svelte-start/2b5667e6e8cc73387c12d4c2db5d4a87659ed291/frontend/public/favicon.png
--------------------------------------------------------------------------------
/frontend/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Svelte app
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/frontend/scripts/setupTypeScript.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Run this script to convert the project to TypeScript. This is only guaranteed to work
3 | * on the unmodified default template; if you have done code changes you are likely need
4 | * to touch up the generated project manually.
5 | */
6 |
7 | // @ts-check
8 | const fs = require("fs")
9 | const path = require("path")
10 | const { argv } = require("process")
11 |
12 | const projectRoot = argv[2] || path.join(__dirname, "..")
13 |
14 | function warn(message) {
15 | console.warn('Warning: ' + message);
16 | }
17 |
18 | function createFile(fileName, contents) {
19 | if (fs.existsSync(fileName)) {
20 | warn(`Wanted to create ${fileName}, but it already existed. Leaving existing file.`);
21 | } else {
22 | fs.writeFileSync(fileName, contents);
23 | }
24 | }
25 |
26 |
27 | function replaceInFile(fileName, replacements) {
28 | if (fs.existsSync(fileName)) {
29 | let contents = fs.readFileSync(fileName, 'utf8');
30 | let hadUpdates = false;
31 |
32 | replacements.forEach(([from, to]) => {
33 | const newContents = contents.replace(from, to);
34 |
35 | const isAlreadyApplied = typeof to !== 'string' || contents.includes(to);
36 |
37 | if (newContents !== contents) {
38 | contents = newContents;
39 | hadUpdates = true;
40 | } else if (!isAlreadyApplied) {
41 | warn(`Wanted to update "${from}" in ${fileName}, but did not find it.`);
42 | }
43 | });
44 |
45 | if (hadUpdates) {
46 | fs.writeFileSync(fileName, contents);
47 | } else {
48 | console.log(`${fileName} had already been updated.`);
49 | }
50 | } else {
51 | warn(`Wanted to update ${fileName} but the file did not exist.`);
52 | }
53 | }
54 |
55 | // Add deps to pkg.json
56 | function addDepsToPackageJson() {
57 | const pkgJSONPath = path.join(projectRoot, 'package.json');
58 | const packageJSON = JSON.parse(fs.readFileSync(pkgJSONPath, 'utf8'));
59 | packageJSON.devDependencies = Object.assign(packageJSON.devDependencies, {
60 | 'ts-loader': '^8.0.4',
61 | '@tsconfig/svelte': '^1.0.10',
62 | '@types/node': '^14.11.1',
63 | 'svelte-check': '^1.0.46',
64 | 'svelte-preprocess': '^4.3.0',
65 | tslib: '^2.0.1',
66 | typescript: '^4.0.3'
67 | });
68 |
69 | // Add script for checking
70 | packageJSON.scripts = Object.assign(packageJSON.scripts, {
71 | validate: 'svelte-check'
72 | });
73 |
74 | // Write the package JSON
75 | fs.writeFileSync(pkgJSONPath, JSON.stringify(packageJSON, null, ' '));
76 | }
77 |
78 | // mv src/main.js to main.ts - note, we need to edit rollup.config.js for this too
79 | function changeJsExtensionToTs(dir) {
80 | const elements = fs.readdirSync(dir, { withFileTypes: true });
81 |
82 | for (let i = 0; i < elements.length; i++) {
83 | if (elements[i].isDirectory()) {
84 | changeJsExtensionToTs(path.join(dir, elements[i].name));
85 | } else if (elements[i].name.match(/^[^_]((?!json).)*js$/)) {
86 | fs.renameSync(path.join(dir, elements[i].name), path.join(dir, elements[i].name).replace('.js', '.ts'));
87 | }
88 | }
89 | }
90 |
91 | function updateSingleSvelteFile({ view, vars, contextModule }) {
92 | replaceInFile(path.join(projectRoot, 'src', `${view}.svelte`), [
93 | [/(?:
4 |
5 |
6 | Hello {name}!
7 | Visit the Svelte tutorial to learn how to build Svelte apps.
8 |
9 |
10 |
31 |
--------------------------------------------------------------------------------
/frontend/src/global.css:
--------------------------------------------------------------------------------
1 | html, body {
2 | position: relative;
3 | width: 100%;
4 | height: 100%;
5 | }
6 |
7 | body {
8 | color: #333;
9 | margin: 0;
10 | padding: 8px;
11 | box-sizing: border-box;
12 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
13 | }
14 |
15 | a {
16 | color: rgb(0,100,200);
17 | text-decoration: none;
18 | }
19 |
20 | a:hover {
21 | text-decoration: underline;
22 | }
23 |
24 | a:visited {
25 | color: rgb(0,80,160);
26 | }
27 |
28 | label {
29 | display: block;
30 | }
31 |
32 | input, button, select, textarea {
33 | font-family: inherit;
34 | font-size: inherit;
35 | -webkit-padding: 0.4em 0;
36 | padding: 0.4em;
37 | margin: 0 0 0.5em 0;
38 | box-sizing: border-box;
39 | border: 1px solid #ccc;
40 | border-radius: 2px;
41 | }
42 |
43 | input:disabled {
44 | color: #ccc;
45 | }
46 |
47 | button {
48 | color: #333;
49 | background-color: #f4f4f4;
50 | outline: none;
51 | }
52 |
53 | button:disabled {
54 | color: #999;
55 | }
56 |
57 | button:not(:disabled):active {
58 | background-color: #ddd;
59 | }
60 |
61 | button:focus {
62 | border-color: #666;
63 | }
64 |
--------------------------------------------------------------------------------
/frontend/src/main.js:
--------------------------------------------------------------------------------
1 | import './global.css';
2 |
3 | import App from './App.svelte';
4 |
5 | const app = new App({
6 | target: document.body,
7 | props: {
8 | name: 'world'
9 | }
10 | });
11 |
12 | export default app;
13 |
--------------------------------------------------------------------------------
/frontend/webpack.config.js:
--------------------------------------------------------------------------------
1 | const MiniCssExtractPlugin = require('mini-css-extract-plugin');
2 | const path = require('path');
3 |
4 | const mode = process.env.NODE_ENV || 'development';
5 | const prod = mode === 'production';
6 |
7 | module.exports = {
8 | entry: {
9 | 'build/bundle': ['./src/main.js']
10 | },
11 | resolve: {
12 | alias: {
13 | svelte: path.dirname(require.resolve('svelte/package.json'))
14 | },
15 | extensions: ['.mjs', '.js', '.svelte'],
16 | mainFields: ['svelte', 'browser', 'module', 'main']
17 | },
18 | output: {
19 | path: path.join(__dirname, '/public'),
20 | filename: '[name].js',
21 | chunkFilename: '[name].[id].js'
22 | },
23 | module: {
24 | rules: [
25 | {
26 | test: /\.svelte$/,
27 | use: {
28 | loader: 'svelte-loader',
29 | options: {
30 | compilerOptions: {
31 | dev: !prod
32 | },
33 | emitCss: prod,
34 | hotReload: !prod
35 | }
36 | }
37 | },
38 | {
39 | test: /\.css$/,
40 | use: [
41 | MiniCssExtractPlugin.loader,
42 | 'css-loader'
43 | ]
44 | },
45 | {
46 | // required to prevent errors from Svelte on Webpack 5+
47 | test: /node_modules\/svelte\/.*\.mjs$/,
48 | resolve: {
49 | fullySpecified: false
50 | }
51 | }
52 | ]
53 | },
54 | mode,
55 | plugins: [
56 | new MiniCssExtractPlugin({
57 | filename: '[name].css'
58 | })
59 | ],
60 | devtool: prod ? false : 'source-map',
61 | devServer: {
62 | hot: true
63 | }
64 | };
65 |
--------------------------------------------------------------------------------
/models/Transactions.js:
--------------------------------------------------------------------------------
1 | const { Schema, model } = require('mongoose')
2 |
3 | const TransactionSchema = new Schema({
4 |
5 | value: { type: Number, required: true},
6 | date: { type: Number, default: new Date().getTime() } ,
7 |
8 |
9 | })
10 |
11 | const Transaction = model('transaction', TransactionSchema)
12 |
13 | module.exports = Transaction
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "expense-tracking",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@mapbox/node-pre-gyp": {
8 | "version": "1.0.6",
9 | "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.6.tgz",
10 | "integrity": "sha512-qK1ECws8UxuPqOA8F5LFD90vyVU33W7N3hGfgsOVfrJaRVc8McC3JClTDHpeSbL9CBrOHly/4GsNPAvIgNZE+g==",
11 | "requires": {
12 | "detect-libc": "^1.0.3",
13 | "https-proxy-agent": "^5.0.0",
14 | "make-dir": "^3.1.0",
15 | "node-fetch": "^2.6.5",
16 | "nopt": "^5.0.0",
17 | "npmlog": "^5.0.1",
18 | "rimraf": "^3.0.2",
19 | "semver": "^7.3.5",
20 | "tar": "^6.1.11"
21 | }
22 | },
23 | "@sindresorhus/is": {
24 | "version": "0.14.0",
25 | "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
26 | "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ=="
27 | },
28 | "@szmarczak/http-timer": {
29 | "version": "1.1.2",
30 | "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
31 | "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
32 | "requires": {
33 | "defer-to-connect": "^1.0.1"
34 | }
35 | },
36 | "@types/node": {
37 | "version": "16.11.4",
38 | "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.4.tgz",
39 | "integrity": "sha512-TMgXmy0v2xWyuCSCJM6NCna2snndD8yvQF67J29ipdzMcsPa9u+o0tjF5+EQNdhcuZplYuouYqpc4zcd5I6amQ=="
40 | },
41 | "@types/webidl-conversions": {
42 | "version": "6.1.1",
43 | "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz",
44 | "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q=="
45 | },
46 | "@types/whatwg-url": {
47 | "version": "8.2.1",
48 | "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz",
49 | "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==",
50 | "requires": {
51 | "@types/node": "*",
52 | "@types/webidl-conversions": "*"
53 | }
54 | },
55 | "abbrev": {
56 | "version": "1.1.1",
57 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
58 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
59 | },
60 | "accepts": {
61 | "version": "1.3.7",
62 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
63 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
64 | "requires": {
65 | "mime-types": "~2.1.24",
66 | "negotiator": "0.6.2"
67 | }
68 | },
69 | "agent-base": {
70 | "version": "6.0.2",
71 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
72 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
73 | "requires": {
74 | "debug": "4"
75 | }
76 | },
77 | "ansi-align": {
78 | "version": "3.0.1",
79 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
80 | "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
81 | "requires": {
82 | "string-width": "^4.1.0"
83 | },
84 | "dependencies": {
85 | "ansi-regex": {
86 | "version": "5.0.1",
87 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
88 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
89 | },
90 | "is-fullwidth-code-point": {
91 | "version": "3.0.0",
92 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
93 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
94 | },
95 | "string-width": {
96 | "version": "4.2.3",
97 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
98 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
99 | "requires": {
100 | "emoji-regex": "^8.0.0",
101 | "is-fullwidth-code-point": "^3.0.0",
102 | "strip-ansi": "^6.0.1"
103 | }
104 | },
105 | "strip-ansi": {
106 | "version": "6.0.1",
107 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
108 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
109 | "requires": {
110 | "ansi-regex": "^5.0.1"
111 | }
112 | }
113 | }
114 | },
115 | "ansi-regex": {
116 | "version": "3.0.0",
117 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
118 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
119 | },
120 | "ansi-styles": {
121 | "version": "4.3.0",
122 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
123 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
124 | "requires": {
125 | "color-convert": "^2.0.1"
126 | }
127 | },
128 | "anymatch": {
129 | "version": "3.1.2",
130 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
131 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
132 | "requires": {
133 | "normalize-path": "^3.0.0",
134 | "picomatch": "^2.0.4"
135 | }
136 | },
137 | "aproba": {
138 | "version": "2.0.0",
139 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
140 | "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="
141 | },
142 | "are-we-there-yet": {
143 | "version": "2.0.0",
144 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
145 | "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
146 | "requires": {
147 | "delegates": "^1.0.0",
148 | "readable-stream": "^3.6.0"
149 | }
150 | },
151 | "array-flatten": {
152 | "version": "1.1.1",
153 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
154 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
155 | },
156 | "axios": {
157 | "version": "0.23.0",
158 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.23.0.tgz",
159 | "integrity": "sha512-NmvAE4i0YAv5cKq8zlDoPd1VLKAqX5oLuZKs8xkJa4qi6RGn0uhCYFjWtHHC9EM/MwOwYWOs53W+V0aqEXq1sg==",
160 | "requires": {
161 | "follow-redirects": "^1.14.4"
162 | }
163 | },
164 | "balanced-match": {
165 | "version": "1.0.2",
166 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
167 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
168 | },
169 | "base64-js": {
170 | "version": "1.5.1",
171 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
172 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
173 | },
174 | "basic-auth": {
175 | "version": "2.0.1",
176 | "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
177 | "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
178 | "requires": {
179 | "safe-buffer": "5.1.2"
180 | },
181 | "dependencies": {
182 | "safe-buffer": {
183 | "version": "5.1.2",
184 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
185 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
186 | }
187 | }
188 | },
189 | "bcrypt": {
190 | "version": "5.0.1",
191 | "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz",
192 | "integrity": "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==",
193 | "requires": {
194 | "@mapbox/node-pre-gyp": "^1.0.0",
195 | "node-addon-api": "^3.1.0"
196 | }
197 | },
198 | "binary-extensions": {
199 | "version": "2.2.0",
200 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
201 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
202 | },
203 | "body-parser": {
204 | "version": "1.19.0",
205 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
206 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
207 | "requires": {
208 | "bytes": "3.1.0",
209 | "content-type": "~1.0.4",
210 | "debug": "2.6.9",
211 | "depd": "~1.1.2",
212 | "http-errors": "1.7.2",
213 | "iconv-lite": "0.4.24",
214 | "on-finished": "~2.3.0",
215 | "qs": "6.7.0",
216 | "raw-body": "2.4.0",
217 | "type-is": "~1.6.17"
218 | },
219 | "dependencies": {
220 | "debug": {
221 | "version": "2.6.9",
222 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
223 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
224 | "requires": {
225 | "ms": "2.0.0"
226 | }
227 | },
228 | "ms": {
229 | "version": "2.0.0",
230 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
231 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
232 | }
233 | }
234 | },
235 | "boxen": {
236 | "version": "5.1.2",
237 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
238 | "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
239 | "requires": {
240 | "ansi-align": "^3.0.0",
241 | "camelcase": "^6.2.0",
242 | "chalk": "^4.1.0",
243 | "cli-boxes": "^2.2.1",
244 | "string-width": "^4.2.2",
245 | "type-fest": "^0.20.2",
246 | "widest-line": "^3.1.0",
247 | "wrap-ansi": "^7.0.0"
248 | },
249 | "dependencies": {
250 | "ansi-regex": {
251 | "version": "5.0.1",
252 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
253 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
254 | },
255 | "is-fullwidth-code-point": {
256 | "version": "3.0.0",
257 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
258 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
259 | },
260 | "string-width": {
261 | "version": "4.2.3",
262 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
263 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
264 | "requires": {
265 | "emoji-regex": "^8.0.0",
266 | "is-fullwidth-code-point": "^3.0.0",
267 | "strip-ansi": "^6.0.1"
268 | }
269 | },
270 | "strip-ansi": {
271 | "version": "6.0.1",
272 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
273 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
274 | "requires": {
275 | "ansi-regex": "^5.0.1"
276 | }
277 | }
278 | }
279 | },
280 | "brace-expansion": {
281 | "version": "1.1.11",
282 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
283 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
284 | "requires": {
285 | "balanced-match": "^1.0.0",
286 | "concat-map": "0.0.1"
287 | }
288 | },
289 | "braces": {
290 | "version": "3.0.2",
291 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
292 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
293 | "requires": {
294 | "fill-range": "^7.0.1"
295 | }
296 | },
297 | "bson": {
298 | "version": "4.5.3",
299 | "resolved": "https://registry.npmjs.org/bson/-/bson-4.5.3.tgz",
300 | "integrity": "sha512-qVX7LX79Mtj7B3NPLzCfBiCP6RAsjiV8N63DjlaVVpZW+PFoDTxQ4SeDbSpcqgE6mXksM5CAwZnXxxxn/XwC0g==",
301 | "requires": {
302 | "buffer": "^5.6.0"
303 | }
304 | },
305 | "buffer": {
306 | "version": "5.7.1",
307 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
308 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
309 | "requires": {
310 | "base64-js": "^1.3.1",
311 | "ieee754": "^1.1.13"
312 | }
313 | },
314 | "bytes": {
315 | "version": "3.1.0",
316 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
317 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
318 | },
319 | "cacheable-request": {
320 | "version": "6.1.0",
321 | "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
322 | "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
323 | "requires": {
324 | "clone-response": "^1.0.2",
325 | "get-stream": "^5.1.0",
326 | "http-cache-semantics": "^4.0.0",
327 | "keyv": "^3.0.0",
328 | "lowercase-keys": "^2.0.0",
329 | "normalize-url": "^4.1.0",
330 | "responselike": "^1.0.2"
331 | },
332 | "dependencies": {
333 | "get-stream": {
334 | "version": "5.2.0",
335 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
336 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
337 | "requires": {
338 | "pump": "^3.0.0"
339 | }
340 | },
341 | "lowercase-keys": {
342 | "version": "2.0.0",
343 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
344 | "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="
345 | }
346 | }
347 | },
348 | "camelcase": {
349 | "version": "6.2.0",
350 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz",
351 | "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg=="
352 | },
353 | "chalk": {
354 | "version": "4.1.2",
355 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
356 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
357 | "requires": {
358 | "ansi-styles": "^4.1.0",
359 | "supports-color": "^7.1.0"
360 | },
361 | "dependencies": {
362 | "supports-color": {
363 | "version": "7.2.0",
364 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
365 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
366 | "requires": {
367 | "has-flag": "^4.0.0"
368 | }
369 | }
370 | }
371 | },
372 | "chokidar": {
373 | "version": "3.5.2",
374 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
375 | "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
376 | "requires": {
377 | "anymatch": "~3.1.2",
378 | "braces": "~3.0.2",
379 | "fsevents": "~2.3.2",
380 | "glob-parent": "~5.1.2",
381 | "is-binary-path": "~2.1.0",
382 | "is-glob": "~4.0.1",
383 | "normalize-path": "~3.0.0",
384 | "readdirp": "~3.6.0"
385 | }
386 | },
387 | "chownr": {
388 | "version": "2.0.0",
389 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
390 | "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
391 | },
392 | "ci-info": {
393 | "version": "2.0.0",
394 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
395 | "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
396 | },
397 | "cli-boxes": {
398 | "version": "2.2.1",
399 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
400 | "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw=="
401 | },
402 | "cliui": {
403 | "version": "7.0.4",
404 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
405 | "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
406 | "requires": {
407 | "string-width": "^4.2.0",
408 | "strip-ansi": "^6.0.0",
409 | "wrap-ansi": "^7.0.0"
410 | },
411 | "dependencies": {
412 | "ansi-regex": {
413 | "version": "5.0.1",
414 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
415 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
416 | },
417 | "is-fullwidth-code-point": {
418 | "version": "3.0.0",
419 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
420 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
421 | },
422 | "string-width": {
423 | "version": "4.2.3",
424 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
425 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
426 | "requires": {
427 | "emoji-regex": "^8.0.0",
428 | "is-fullwidth-code-point": "^3.0.0",
429 | "strip-ansi": "^6.0.1"
430 | }
431 | },
432 | "strip-ansi": {
433 | "version": "6.0.1",
434 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
435 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
436 | "requires": {
437 | "ansi-regex": "^5.0.1"
438 | }
439 | }
440 | }
441 | },
442 | "clone-response": {
443 | "version": "1.0.2",
444 | "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
445 | "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
446 | "requires": {
447 | "mimic-response": "^1.0.0"
448 | }
449 | },
450 | "color-convert": {
451 | "version": "2.0.1",
452 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
453 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
454 | "requires": {
455 | "color-name": "~1.1.4"
456 | }
457 | },
458 | "color-name": {
459 | "version": "1.1.4",
460 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
461 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
462 | },
463 | "color-support": {
464 | "version": "1.1.3",
465 | "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
466 | "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="
467 | },
468 | "concat-map": {
469 | "version": "0.0.1",
470 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
471 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
472 | },
473 | "concurrently": {
474 | "version": "6.3.0",
475 | "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.3.0.tgz",
476 | "integrity": "sha512-k4k1jQGHHKsfbqzkUszVf29qECBrkvBKkcPJEUDTyVR7tZd1G/JOfnst4g1sYbFvJ4UjHZisj1aWQR8yLKpGPw==",
477 | "requires": {
478 | "chalk": "^4.1.0",
479 | "date-fns": "^2.16.1",
480 | "lodash": "^4.17.21",
481 | "rxjs": "^6.6.3",
482 | "spawn-command": "^0.0.2-1",
483 | "supports-color": "^8.1.0",
484 | "tree-kill": "^1.2.2",
485 | "yargs": "^16.2.0"
486 | }
487 | },
488 | "configstore": {
489 | "version": "5.0.1",
490 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
491 | "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
492 | "requires": {
493 | "dot-prop": "^5.2.0",
494 | "graceful-fs": "^4.1.2",
495 | "make-dir": "^3.0.0",
496 | "unique-string": "^2.0.0",
497 | "write-file-atomic": "^3.0.0",
498 | "xdg-basedir": "^4.0.0"
499 | }
500 | },
501 | "console-control-strings": {
502 | "version": "1.1.0",
503 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
504 | "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
505 | },
506 | "content-disposition": {
507 | "version": "0.5.3",
508 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
509 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
510 | "requires": {
511 | "safe-buffer": "5.1.2"
512 | },
513 | "dependencies": {
514 | "safe-buffer": {
515 | "version": "5.1.2",
516 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
517 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
518 | }
519 | }
520 | },
521 | "content-type": {
522 | "version": "1.0.4",
523 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
524 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
525 | },
526 | "cookie": {
527 | "version": "0.4.0",
528 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
529 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
530 | },
531 | "cookie-signature": {
532 | "version": "1.0.6",
533 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
534 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
535 | },
536 | "cors": {
537 | "version": "2.8.5",
538 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
539 | "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
540 | "requires": {
541 | "object-assign": "^4",
542 | "vary": "^1"
543 | }
544 | },
545 | "crypto-random-string": {
546 | "version": "2.0.0",
547 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
548 | "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="
549 | },
550 | "date-fns": {
551 | "version": "2.25.0",
552 | "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.25.0.tgz",
553 | "integrity": "sha512-ovYRFnTrbGPD4nqaEqescPEv1mNwvt+UTqI3Ay9SzNtey9NZnYu6E2qCcBBgJ6/2VF1zGGygpyTDITqpQQ5e+w=="
554 | },
555 | "debug": {
556 | "version": "4.3.2",
557 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
558 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
559 | "requires": {
560 | "ms": "2.1.2"
561 | }
562 | },
563 | "decompress-response": {
564 | "version": "3.3.0",
565 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
566 | "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
567 | "requires": {
568 | "mimic-response": "^1.0.0"
569 | }
570 | },
571 | "deep-extend": {
572 | "version": "0.6.0",
573 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
574 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
575 | },
576 | "defer-to-connect": {
577 | "version": "1.1.3",
578 | "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
579 | "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
580 | },
581 | "delegates": {
582 | "version": "1.0.0",
583 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
584 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
585 | },
586 | "denque": {
587 | "version": "2.0.1",
588 | "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz",
589 | "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ=="
590 | },
591 | "depd": {
592 | "version": "1.1.2",
593 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
594 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
595 | },
596 | "destroy": {
597 | "version": "1.0.4",
598 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
599 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
600 | },
601 | "detect-libc": {
602 | "version": "1.0.3",
603 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
604 | "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
605 | },
606 | "dot-prop": {
607 | "version": "5.3.0",
608 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
609 | "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
610 | "requires": {
611 | "is-obj": "^2.0.0"
612 | }
613 | },
614 | "duplexer3": {
615 | "version": "0.1.4",
616 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
617 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
618 | },
619 | "ee-first": {
620 | "version": "1.1.1",
621 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
622 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
623 | },
624 | "emoji-regex": {
625 | "version": "8.0.0",
626 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
627 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
628 | },
629 | "encodeurl": {
630 | "version": "1.0.2",
631 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
632 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
633 | },
634 | "end-of-stream": {
635 | "version": "1.4.4",
636 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
637 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
638 | "requires": {
639 | "once": "^1.4.0"
640 | }
641 | },
642 | "escalade": {
643 | "version": "3.1.1",
644 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
645 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
646 | },
647 | "escape-goat": {
648 | "version": "2.1.1",
649 | "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
650 | "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q=="
651 | },
652 | "escape-html": {
653 | "version": "1.0.3",
654 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
655 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
656 | },
657 | "etag": {
658 | "version": "1.8.1",
659 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
660 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
661 | },
662 | "express": {
663 | "version": "4.17.1",
664 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
665 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
666 | "requires": {
667 | "accepts": "~1.3.7",
668 | "array-flatten": "1.1.1",
669 | "body-parser": "1.19.0",
670 | "content-disposition": "0.5.3",
671 | "content-type": "~1.0.4",
672 | "cookie": "0.4.0",
673 | "cookie-signature": "1.0.6",
674 | "debug": "2.6.9",
675 | "depd": "~1.1.2",
676 | "encodeurl": "~1.0.2",
677 | "escape-html": "~1.0.3",
678 | "etag": "~1.8.1",
679 | "finalhandler": "~1.1.2",
680 | "fresh": "0.5.2",
681 | "merge-descriptors": "1.0.1",
682 | "methods": "~1.1.2",
683 | "on-finished": "~2.3.0",
684 | "parseurl": "~1.3.3",
685 | "path-to-regexp": "0.1.7",
686 | "proxy-addr": "~2.0.5",
687 | "qs": "6.7.0",
688 | "range-parser": "~1.2.1",
689 | "safe-buffer": "5.1.2",
690 | "send": "0.17.1",
691 | "serve-static": "1.14.1",
692 | "setprototypeof": "1.1.1",
693 | "statuses": "~1.5.0",
694 | "type-is": "~1.6.18",
695 | "utils-merge": "1.0.1",
696 | "vary": "~1.1.2"
697 | },
698 | "dependencies": {
699 | "debug": {
700 | "version": "2.6.9",
701 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
702 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
703 | "requires": {
704 | "ms": "2.0.0"
705 | }
706 | },
707 | "ms": {
708 | "version": "2.0.0",
709 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
710 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
711 | },
712 | "safe-buffer": {
713 | "version": "5.1.2",
714 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
715 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
716 | }
717 | }
718 | },
719 | "express-async-handler": {
720 | "version": "1.2.0",
721 | "resolved": "https://registry.npmjs.org/express-async-handler/-/express-async-handler-1.2.0.tgz",
722 | "integrity": "sha512-rCSVtPXRmQSW8rmik/AIb2P0op6l7r1fMW538yyvTMltCO4xQEWMmobfrIxN2V1/mVrgxB8Az3reYF6yUZw37w=="
723 | },
724 | "fill-range": {
725 | "version": "7.0.1",
726 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
727 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
728 | "requires": {
729 | "to-regex-range": "^5.0.1"
730 | }
731 | },
732 | "finalhandler": {
733 | "version": "1.1.2",
734 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
735 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
736 | "requires": {
737 | "debug": "2.6.9",
738 | "encodeurl": "~1.0.2",
739 | "escape-html": "~1.0.3",
740 | "on-finished": "~2.3.0",
741 | "parseurl": "~1.3.3",
742 | "statuses": "~1.5.0",
743 | "unpipe": "~1.0.0"
744 | },
745 | "dependencies": {
746 | "debug": {
747 | "version": "2.6.9",
748 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
749 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
750 | "requires": {
751 | "ms": "2.0.0"
752 | }
753 | },
754 | "ms": {
755 | "version": "2.0.0",
756 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
757 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
758 | }
759 | }
760 | },
761 | "follow-redirects": {
762 | "version": "1.14.4",
763 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz",
764 | "integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g=="
765 | },
766 | "forwarded": {
767 | "version": "0.2.0",
768 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
769 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
770 | },
771 | "fresh": {
772 | "version": "0.5.2",
773 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
774 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
775 | },
776 | "fs-minipass": {
777 | "version": "2.1.0",
778 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
779 | "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
780 | "requires": {
781 | "minipass": "^3.0.0"
782 | }
783 | },
784 | "fs.realpath": {
785 | "version": "1.0.0",
786 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
787 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
788 | },
789 | "fsevents": {
790 | "version": "2.3.2",
791 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
792 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
793 | "optional": true
794 | },
795 | "gauge": {
796 | "version": "3.0.1",
797 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.1.tgz",
798 | "integrity": "sha512-6STz6KdQgxO4S/ko+AbjlFGGdGcknluoqU+79GOFCDqqyYj5OanQf9AjxwN0jCidtT+ziPMmPSt9E4hfQ0CwIQ==",
799 | "requires": {
800 | "aproba": "^1.0.3 || ^2.0.0",
801 | "color-support": "^1.1.2",
802 | "console-control-strings": "^1.0.0",
803 | "has-unicode": "^2.0.1",
804 | "object-assign": "^4.1.1",
805 | "signal-exit": "^3.0.0",
806 | "string-width": "^1.0.1 || ^2.0.0",
807 | "strip-ansi": "^3.0.1 || ^4.0.0",
808 | "wide-align": "^1.1.2"
809 | }
810 | },
811 | "get-caller-file": {
812 | "version": "2.0.5",
813 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
814 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
815 | },
816 | "get-stream": {
817 | "version": "4.1.0",
818 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
819 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
820 | "requires": {
821 | "pump": "^3.0.0"
822 | }
823 | },
824 | "glob": {
825 | "version": "7.2.0",
826 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
827 | "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
828 | "requires": {
829 | "fs.realpath": "^1.0.0",
830 | "inflight": "^1.0.4",
831 | "inherits": "2",
832 | "minimatch": "^3.0.4",
833 | "once": "^1.3.0",
834 | "path-is-absolute": "^1.0.0"
835 | }
836 | },
837 | "glob-parent": {
838 | "version": "5.1.2",
839 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
840 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
841 | "requires": {
842 | "is-glob": "^4.0.1"
843 | }
844 | },
845 | "global-dirs": {
846 | "version": "3.0.0",
847 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz",
848 | "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==",
849 | "requires": {
850 | "ini": "2.0.0"
851 | }
852 | },
853 | "got": {
854 | "version": "9.6.0",
855 | "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
856 | "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
857 | "requires": {
858 | "@sindresorhus/is": "^0.14.0",
859 | "@szmarczak/http-timer": "^1.1.2",
860 | "cacheable-request": "^6.0.0",
861 | "decompress-response": "^3.3.0",
862 | "duplexer3": "^0.1.4",
863 | "get-stream": "^4.1.0",
864 | "lowercase-keys": "^1.0.1",
865 | "mimic-response": "^1.0.1",
866 | "p-cancelable": "^1.0.0",
867 | "to-readable-stream": "^1.0.0",
868 | "url-parse-lax": "^3.0.0"
869 | }
870 | },
871 | "graceful-fs": {
872 | "version": "4.2.8",
873 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
874 | "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
875 | },
876 | "has-flag": {
877 | "version": "4.0.0",
878 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
879 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
880 | },
881 | "has-unicode": {
882 | "version": "2.0.1",
883 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
884 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
885 | },
886 | "has-yarn": {
887 | "version": "2.1.0",
888 | "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
889 | "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw=="
890 | },
891 | "http-cache-semantics": {
892 | "version": "4.1.0",
893 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
894 | "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
895 | },
896 | "http-errors": {
897 | "version": "1.7.2",
898 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
899 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
900 | "requires": {
901 | "depd": "~1.1.2",
902 | "inherits": "2.0.3",
903 | "setprototypeof": "1.1.1",
904 | "statuses": ">= 1.5.0 < 2",
905 | "toidentifier": "1.0.0"
906 | },
907 | "dependencies": {
908 | "inherits": {
909 | "version": "2.0.3",
910 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
911 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
912 | }
913 | }
914 | },
915 | "https-proxy-agent": {
916 | "version": "5.0.0",
917 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
918 | "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
919 | "requires": {
920 | "agent-base": "6",
921 | "debug": "4"
922 | }
923 | },
924 | "iconv-lite": {
925 | "version": "0.4.24",
926 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
927 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
928 | "requires": {
929 | "safer-buffer": ">= 2.1.2 < 3"
930 | }
931 | },
932 | "ieee754": {
933 | "version": "1.2.1",
934 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
935 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
936 | },
937 | "ignore-by-default": {
938 | "version": "1.0.1",
939 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
940 | "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk="
941 | },
942 | "import-lazy": {
943 | "version": "2.1.0",
944 | "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
945 | "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM="
946 | },
947 | "imurmurhash": {
948 | "version": "0.1.4",
949 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
950 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
951 | },
952 | "inflight": {
953 | "version": "1.0.6",
954 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
955 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
956 | "requires": {
957 | "once": "^1.3.0",
958 | "wrappy": "1"
959 | }
960 | },
961 | "inherits": {
962 | "version": "2.0.4",
963 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
964 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
965 | },
966 | "ini": {
967 | "version": "2.0.0",
968 | "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
969 | "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA=="
970 | },
971 | "ipaddr.js": {
972 | "version": "1.9.1",
973 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
974 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
975 | },
976 | "is-binary-path": {
977 | "version": "2.1.0",
978 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
979 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
980 | "requires": {
981 | "binary-extensions": "^2.0.0"
982 | }
983 | },
984 | "is-ci": {
985 | "version": "2.0.0",
986 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
987 | "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
988 | "requires": {
989 | "ci-info": "^2.0.0"
990 | }
991 | },
992 | "is-extglob": {
993 | "version": "2.1.1",
994 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
995 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
996 | },
997 | "is-fullwidth-code-point": {
998 | "version": "2.0.0",
999 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1000 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
1001 | },
1002 | "is-glob": {
1003 | "version": "4.0.3",
1004 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
1005 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
1006 | "requires": {
1007 | "is-extglob": "^2.1.1"
1008 | }
1009 | },
1010 | "is-installed-globally": {
1011 | "version": "0.4.0",
1012 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
1013 | "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
1014 | "requires": {
1015 | "global-dirs": "^3.0.0",
1016 | "is-path-inside": "^3.0.2"
1017 | }
1018 | },
1019 | "is-npm": {
1020 | "version": "5.0.0",
1021 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz",
1022 | "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA=="
1023 | },
1024 | "is-number": {
1025 | "version": "7.0.0",
1026 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1027 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
1028 | },
1029 | "is-obj": {
1030 | "version": "2.0.0",
1031 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
1032 | "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="
1033 | },
1034 | "is-path-inside": {
1035 | "version": "3.0.3",
1036 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
1037 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
1038 | },
1039 | "is-typedarray": {
1040 | "version": "1.0.0",
1041 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
1042 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
1043 | },
1044 | "is-yarn-global": {
1045 | "version": "0.3.0",
1046 | "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
1047 | "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw=="
1048 | },
1049 | "json-buffer": {
1050 | "version": "3.0.0",
1051 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
1052 | "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
1053 | },
1054 | "kareem": {
1055 | "version": "2.3.2",
1056 | "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz",
1057 | "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ=="
1058 | },
1059 | "keyv": {
1060 | "version": "3.1.0",
1061 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
1062 | "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
1063 | "requires": {
1064 | "json-buffer": "3.0.0"
1065 | }
1066 | },
1067 | "latest-version": {
1068 | "version": "5.1.0",
1069 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
1070 | "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
1071 | "requires": {
1072 | "package-json": "^6.3.0"
1073 | }
1074 | },
1075 | "lodash": {
1076 | "version": "4.17.21",
1077 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
1078 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
1079 | },
1080 | "lowercase-keys": {
1081 | "version": "1.0.1",
1082 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
1083 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
1084 | },
1085 | "lru-cache": {
1086 | "version": "6.0.0",
1087 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
1088 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1089 | "requires": {
1090 | "yallist": "^4.0.0"
1091 | }
1092 | },
1093 | "make-dir": {
1094 | "version": "3.1.0",
1095 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
1096 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
1097 | "requires": {
1098 | "semver": "^6.0.0"
1099 | },
1100 | "dependencies": {
1101 | "semver": {
1102 | "version": "6.3.0",
1103 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1104 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
1105 | }
1106 | }
1107 | },
1108 | "media-typer": {
1109 | "version": "0.3.0",
1110 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
1111 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
1112 | },
1113 | "memory-pager": {
1114 | "version": "1.5.0",
1115 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
1116 | "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
1117 | "optional": true
1118 | },
1119 | "merge-descriptors": {
1120 | "version": "1.0.1",
1121 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
1122 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
1123 | },
1124 | "methods": {
1125 | "version": "1.1.2",
1126 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1127 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
1128 | },
1129 | "mime": {
1130 | "version": "1.6.0",
1131 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1132 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
1133 | },
1134 | "mime-db": {
1135 | "version": "1.50.0",
1136 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz",
1137 | "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A=="
1138 | },
1139 | "mime-types": {
1140 | "version": "2.1.33",
1141 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz",
1142 | "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==",
1143 | "requires": {
1144 | "mime-db": "1.50.0"
1145 | }
1146 | },
1147 | "mimic-response": {
1148 | "version": "1.0.1",
1149 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
1150 | "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
1151 | },
1152 | "minimatch": {
1153 | "version": "3.0.4",
1154 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1155 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1156 | "requires": {
1157 | "brace-expansion": "^1.1.7"
1158 | }
1159 | },
1160 | "minimist": {
1161 | "version": "1.2.5",
1162 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
1163 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
1164 | },
1165 | "minipass": {
1166 | "version": "3.1.5",
1167 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz",
1168 | "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==",
1169 | "requires": {
1170 | "yallist": "^4.0.0"
1171 | }
1172 | },
1173 | "minizlib": {
1174 | "version": "2.1.2",
1175 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
1176 | "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
1177 | "requires": {
1178 | "minipass": "^3.0.0",
1179 | "yallist": "^4.0.0"
1180 | }
1181 | },
1182 | "mkdirp": {
1183 | "version": "1.0.4",
1184 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
1185 | "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
1186 | },
1187 | "mongodb": {
1188 | "version": "4.1.3",
1189 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.1.3.tgz",
1190 | "integrity": "sha512-lHvTqODBiSpuqjpCj48DOyYWS6Iq6ElJNUiH9HWdQtONyOfjgsKzJULipWduMGsSzaNO4nFi/kmlMFCLvjox/Q==",
1191 | "requires": {
1192 | "bson": "^4.5.2",
1193 | "denque": "^2.0.1",
1194 | "mongodb-connection-string-url": "^2.0.0",
1195 | "saslprep": "^1.0.3"
1196 | }
1197 | },
1198 | "mongodb-connection-string-url": {
1199 | "version": "2.1.0",
1200 | "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.1.0.tgz",
1201 | "integrity": "sha512-Qf9Zw7KGiRljWvMrrUFDdVqo46KIEiDuCzvEN97rh/PcKzk2bd6n9KuzEwBwW9xo5glwx69y1mI6s+jFUD/aIQ==",
1202 | "requires": {
1203 | "@types/whatwg-url": "^8.2.1",
1204 | "whatwg-url": "^9.1.0"
1205 | },
1206 | "dependencies": {
1207 | "tr46": {
1208 | "version": "2.1.0",
1209 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
1210 | "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
1211 | "requires": {
1212 | "punycode": "^2.1.1"
1213 | }
1214 | },
1215 | "webidl-conversions": {
1216 | "version": "6.1.0",
1217 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
1218 | "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w=="
1219 | },
1220 | "whatwg-url": {
1221 | "version": "9.1.0",
1222 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-9.1.0.tgz",
1223 | "integrity": "sha512-CQ0UcrPHyomtlOCot1TL77WyMIm/bCwrJ2D6AOKGwEczU9EpyoqAokfqrf/MioU9kHcMsmJZcg1egXix2KYEsA==",
1224 | "requires": {
1225 | "tr46": "^2.1.0",
1226 | "webidl-conversions": "^6.1.0"
1227 | }
1228 | }
1229 | }
1230 | },
1231 | "mongoose": {
1232 | "version": "6.0.12",
1233 | "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.0.12.tgz",
1234 | "integrity": "sha512-BvsZk7zEEhb1AgQFLtxN9C+7qgy5edRuA3ZDDwHU+kHG/HM44vI6FdKV5m6HVdAUeCHHQTiVv+YQh8BRsToSHw==",
1235 | "requires": {
1236 | "bson": "^4.2.2",
1237 | "kareem": "2.3.2",
1238 | "mongodb": "4.1.3",
1239 | "mpath": "0.8.4",
1240 | "mquery": "4.0.0",
1241 | "ms": "2.1.2",
1242 | "regexp-clone": "1.0.0",
1243 | "sift": "13.5.2",
1244 | "sliced": "1.0.1"
1245 | }
1246 | },
1247 | "morgan": {
1248 | "version": "1.10.0",
1249 | "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz",
1250 | "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==",
1251 | "requires": {
1252 | "basic-auth": "~2.0.1",
1253 | "debug": "2.6.9",
1254 | "depd": "~2.0.0",
1255 | "on-finished": "~2.3.0",
1256 | "on-headers": "~1.0.2"
1257 | },
1258 | "dependencies": {
1259 | "debug": {
1260 | "version": "2.6.9",
1261 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1262 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1263 | "requires": {
1264 | "ms": "2.0.0"
1265 | }
1266 | },
1267 | "depd": {
1268 | "version": "2.0.0",
1269 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
1270 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
1271 | },
1272 | "ms": {
1273 | "version": "2.0.0",
1274 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1275 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1276 | }
1277 | }
1278 | },
1279 | "mpath": {
1280 | "version": "0.8.4",
1281 | "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz",
1282 | "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g=="
1283 | },
1284 | "mquery": {
1285 | "version": "4.0.0",
1286 | "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.0.tgz",
1287 | "integrity": "sha512-nGjm89lHja+T/b8cybAby6H0YgA4qYC/lx6UlwvHGqvTq8bDaNeCwl1sY8uRELrNbVWJzIihxVd+vphGGn1vBw==",
1288 | "requires": {
1289 | "debug": "4.x",
1290 | "regexp-clone": "^1.0.0",
1291 | "sliced": "1.0.1"
1292 | }
1293 | },
1294 | "ms": {
1295 | "version": "2.1.2",
1296 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1297 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1298 | },
1299 | "negotiator": {
1300 | "version": "0.6.2",
1301 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
1302 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
1303 | },
1304 | "node-addon-api": {
1305 | "version": "3.2.1",
1306 | "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz",
1307 | "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A=="
1308 | },
1309 | "node-fetch": {
1310 | "version": "2.6.5",
1311 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz",
1312 | "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==",
1313 | "requires": {
1314 | "whatwg-url": "^5.0.0"
1315 | }
1316 | },
1317 | "nodemon": {
1318 | "version": "2.0.14",
1319 | "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.14.tgz",
1320 | "integrity": "sha512-frcpDx+PviKEQRSYzwhckuO2zoHcBYLHI754RE9z5h1RGtrngerc04mLpQQCPWBkH/2ObrX7We9YiwVSYZpFJQ==",
1321 | "requires": {
1322 | "chokidar": "^3.2.2",
1323 | "debug": "^3.2.6",
1324 | "ignore-by-default": "^1.0.1",
1325 | "minimatch": "^3.0.4",
1326 | "pstree.remy": "^1.1.7",
1327 | "semver": "^5.7.1",
1328 | "supports-color": "^5.5.0",
1329 | "touch": "^3.1.0",
1330 | "undefsafe": "^2.0.3",
1331 | "update-notifier": "^5.1.0"
1332 | },
1333 | "dependencies": {
1334 | "debug": {
1335 | "version": "3.2.7",
1336 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
1337 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
1338 | "requires": {
1339 | "ms": "^2.1.1"
1340 | }
1341 | },
1342 | "has-flag": {
1343 | "version": "3.0.0",
1344 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1345 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
1346 | },
1347 | "semver": {
1348 | "version": "5.7.1",
1349 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1350 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
1351 | },
1352 | "supports-color": {
1353 | "version": "5.5.0",
1354 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1355 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1356 | "requires": {
1357 | "has-flag": "^3.0.0"
1358 | }
1359 | }
1360 | }
1361 | },
1362 | "nopt": {
1363 | "version": "5.0.0",
1364 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
1365 | "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
1366 | "requires": {
1367 | "abbrev": "1"
1368 | }
1369 | },
1370 | "normalize-path": {
1371 | "version": "3.0.0",
1372 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1373 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
1374 | },
1375 | "normalize-url": {
1376 | "version": "4.5.1",
1377 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
1378 | "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA=="
1379 | },
1380 | "npmlog": {
1381 | "version": "5.0.1",
1382 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
1383 | "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
1384 | "requires": {
1385 | "are-we-there-yet": "^2.0.0",
1386 | "console-control-strings": "^1.1.0",
1387 | "gauge": "^3.0.0",
1388 | "set-blocking": "^2.0.0"
1389 | }
1390 | },
1391 | "object-assign": {
1392 | "version": "4.1.1",
1393 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1394 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
1395 | },
1396 | "on-finished": {
1397 | "version": "2.3.0",
1398 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1399 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
1400 | "requires": {
1401 | "ee-first": "1.1.1"
1402 | }
1403 | },
1404 | "on-headers": {
1405 | "version": "1.0.2",
1406 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
1407 | "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
1408 | },
1409 | "once": {
1410 | "version": "1.4.0",
1411 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1412 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1413 | "requires": {
1414 | "wrappy": "1"
1415 | }
1416 | },
1417 | "p-cancelable": {
1418 | "version": "1.1.0",
1419 | "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
1420 | "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw=="
1421 | },
1422 | "package-json": {
1423 | "version": "6.5.0",
1424 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
1425 | "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
1426 | "requires": {
1427 | "got": "^9.6.0",
1428 | "registry-auth-token": "^4.0.0",
1429 | "registry-url": "^5.0.0",
1430 | "semver": "^6.2.0"
1431 | },
1432 | "dependencies": {
1433 | "semver": {
1434 | "version": "6.3.0",
1435 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1436 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
1437 | }
1438 | }
1439 | },
1440 | "parseurl": {
1441 | "version": "1.3.3",
1442 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1443 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
1444 | },
1445 | "path": {
1446 | "version": "0.12.7",
1447 | "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
1448 | "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=",
1449 | "requires": {
1450 | "process": "^0.11.1",
1451 | "util": "^0.10.3"
1452 | }
1453 | },
1454 | "path-is-absolute": {
1455 | "version": "1.0.1",
1456 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1457 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
1458 | },
1459 | "path-to-regexp": {
1460 | "version": "0.1.7",
1461 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1462 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
1463 | },
1464 | "picomatch": {
1465 | "version": "2.3.0",
1466 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
1467 | "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw=="
1468 | },
1469 | "prepend-http": {
1470 | "version": "2.0.0",
1471 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
1472 | "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
1473 | },
1474 | "process": {
1475 | "version": "0.11.10",
1476 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
1477 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
1478 | },
1479 | "proxy-addr": {
1480 | "version": "2.0.7",
1481 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
1482 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
1483 | "requires": {
1484 | "forwarded": "0.2.0",
1485 | "ipaddr.js": "1.9.1"
1486 | }
1487 | },
1488 | "pstree.remy": {
1489 | "version": "1.1.8",
1490 | "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
1491 | "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w=="
1492 | },
1493 | "pump": {
1494 | "version": "3.0.0",
1495 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
1496 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
1497 | "requires": {
1498 | "end-of-stream": "^1.1.0",
1499 | "once": "^1.3.1"
1500 | }
1501 | },
1502 | "punycode": {
1503 | "version": "2.1.1",
1504 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1505 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
1506 | },
1507 | "pupa": {
1508 | "version": "2.1.1",
1509 | "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz",
1510 | "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==",
1511 | "requires": {
1512 | "escape-goat": "^2.0.0"
1513 | }
1514 | },
1515 | "qs": {
1516 | "version": "6.7.0",
1517 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
1518 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
1519 | },
1520 | "range-parser": {
1521 | "version": "1.2.1",
1522 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1523 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
1524 | },
1525 | "raw-body": {
1526 | "version": "2.4.0",
1527 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
1528 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
1529 | "requires": {
1530 | "bytes": "3.1.0",
1531 | "http-errors": "1.7.2",
1532 | "iconv-lite": "0.4.24",
1533 | "unpipe": "1.0.0"
1534 | }
1535 | },
1536 | "rc": {
1537 | "version": "1.2.8",
1538 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
1539 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
1540 | "requires": {
1541 | "deep-extend": "^0.6.0",
1542 | "ini": "~1.3.0",
1543 | "minimist": "^1.2.0",
1544 | "strip-json-comments": "~2.0.1"
1545 | },
1546 | "dependencies": {
1547 | "ini": {
1548 | "version": "1.3.8",
1549 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
1550 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
1551 | }
1552 | }
1553 | },
1554 | "readable-stream": {
1555 | "version": "3.6.0",
1556 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
1557 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
1558 | "requires": {
1559 | "inherits": "^2.0.3",
1560 | "string_decoder": "^1.1.1",
1561 | "util-deprecate": "^1.0.1"
1562 | }
1563 | },
1564 | "readdirp": {
1565 | "version": "3.6.0",
1566 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1567 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1568 | "requires": {
1569 | "picomatch": "^2.2.1"
1570 | }
1571 | },
1572 | "regexp-clone": {
1573 | "version": "1.0.0",
1574 | "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz",
1575 | "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw=="
1576 | },
1577 | "registry-auth-token": {
1578 | "version": "4.2.1",
1579 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz",
1580 | "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==",
1581 | "requires": {
1582 | "rc": "^1.2.8"
1583 | }
1584 | },
1585 | "registry-url": {
1586 | "version": "5.1.0",
1587 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
1588 | "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
1589 | "requires": {
1590 | "rc": "^1.2.8"
1591 | }
1592 | },
1593 | "require-directory": {
1594 | "version": "2.1.1",
1595 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1596 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
1597 | },
1598 | "responselike": {
1599 | "version": "1.0.2",
1600 | "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
1601 | "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
1602 | "requires": {
1603 | "lowercase-keys": "^1.0.0"
1604 | }
1605 | },
1606 | "rimraf": {
1607 | "version": "3.0.2",
1608 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
1609 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
1610 | "requires": {
1611 | "glob": "^7.1.3"
1612 | }
1613 | },
1614 | "rxjs": {
1615 | "version": "6.6.7",
1616 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
1617 | "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
1618 | "requires": {
1619 | "tslib": "^1.9.0"
1620 | }
1621 | },
1622 | "safe-buffer": {
1623 | "version": "5.2.1",
1624 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1625 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
1626 | },
1627 | "safer-buffer": {
1628 | "version": "2.1.2",
1629 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1630 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1631 | },
1632 | "saslprep": {
1633 | "version": "1.0.3",
1634 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
1635 | "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
1636 | "optional": true,
1637 | "requires": {
1638 | "sparse-bitfield": "^3.0.3"
1639 | }
1640 | },
1641 | "semver": {
1642 | "version": "7.3.5",
1643 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
1644 | "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
1645 | "requires": {
1646 | "lru-cache": "^6.0.0"
1647 | }
1648 | },
1649 | "semver-diff": {
1650 | "version": "3.1.1",
1651 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz",
1652 | "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
1653 | "requires": {
1654 | "semver": "^6.3.0"
1655 | },
1656 | "dependencies": {
1657 | "semver": {
1658 | "version": "6.3.0",
1659 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1660 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
1661 | }
1662 | }
1663 | },
1664 | "send": {
1665 | "version": "0.17.1",
1666 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
1667 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
1668 | "requires": {
1669 | "debug": "2.6.9",
1670 | "depd": "~1.1.2",
1671 | "destroy": "~1.0.4",
1672 | "encodeurl": "~1.0.2",
1673 | "escape-html": "~1.0.3",
1674 | "etag": "~1.8.1",
1675 | "fresh": "0.5.2",
1676 | "http-errors": "~1.7.2",
1677 | "mime": "1.6.0",
1678 | "ms": "2.1.1",
1679 | "on-finished": "~2.3.0",
1680 | "range-parser": "~1.2.1",
1681 | "statuses": "~1.5.0"
1682 | },
1683 | "dependencies": {
1684 | "debug": {
1685 | "version": "2.6.9",
1686 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1687 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1688 | "requires": {
1689 | "ms": "2.0.0"
1690 | },
1691 | "dependencies": {
1692 | "ms": {
1693 | "version": "2.0.0",
1694 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1695 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1696 | }
1697 | }
1698 | },
1699 | "ms": {
1700 | "version": "2.1.1",
1701 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
1702 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
1703 | }
1704 | }
1705 | },
1706 | "serve-static": {
1707 | "version": "1.14.1",
1708 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
1709 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
1710 | "requires": {
1711 | "encodeurl": "~1.0.2",
1712 | "escape-html": "~1.0.3",
1713 | "parseurl": "~1.3.3",
1714 | "send": "0.17.1"
1715 | }
1716 | },
1717 | "set-blocking": {
1718 | "version": "2.0.0",
1719 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
1720 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
1721 | },
1722 | "setprototypeof": {
1723 | "version": "1.1.1",
1724 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
1725 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
1726 | },
1727 | "sift": {
1728 | "version": "13.5.2",
1729 | "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz",
1730 | "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA=="
1731 | },
1732 | "signal-exit": {
1733 | "version": "3.0.5",
1734 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz",
1735 | "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ=="
1736 | },
1737 | "sliced": {
1738 | "version": "1.0.1",
1739 | "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
1740 | "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
1741 | },
1742 | "sparse-bitfield": {
1743 | "version": "3.0.3",
1744 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
1745 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
1746 | "optional": true,
1747 | "requires": {
1748 | "memory-pager": "^1.0.2"
1749 | }
1750 | },
1751 | "spawn-command": {
1752 | "version": "0.0.2-1",
1753 | "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz",
1754 | "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A="
1755 | },
1756 | "statuses": {
1757 | "version": "1.5.0",
1758 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
1759 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
1760 | },
1761 | "string-width": {
1762 | "version": "2.1.1",
1763 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
1764 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
1765 | "requires": {
1766 | "is-fullwidth-code-point": "^2.0.0",
1767 | "strip-ansi": "^4.0.0"
1768 | }
1769 | },
1770 | "string_decoder": {
1771 | "version": "1.3.0",
1772 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
1773 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
1774 | "requires": {
1775 | "safe-buffer": "~5.2.0"
1776 | }
1777 | },
1778 | "strip-ansi": {
1779 | "version": "4.0.0",
1780 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
1781 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
1782 | "requires": {
1783 | "ansi-regex": "^3.0.0"
1784 | }
1785 | },
1786 | "strip-json-comments": {
1787 | "version": "2.0.1",
1788 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
1789 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
1790 | },
1791 | "supports-color": {
1792 | "version": "8.1.1",
1793 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
1794 | "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
1795 | "requires": {
1796 | "has-flag": "^4.0.0"
1797 | }
1798 | },
1799 | "tar": {
1800 | "version": "6.1.11",
1801 | "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
1802 | "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
1803 | "requires": {
1804 | "chownr": "^2.0.0",
1805 | "fs-minipass": "^2.0.0",
1806 | "minipass": "^3.0.0",
1807 | "minizlib": "^2.1.1",
1808 | "mkdirp": "^1.0.3",
1809 | "yallist": "^4.0.0"
1810 | }
1811 | },
1812 | "to-readable-stream": {
1813 | "version": "1.0.0",
1814 | "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
1815 | "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q=="
1816 | },
1817 | "to-regex-range": {
1818 | "version": "5.0.1",
1819 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1820 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1821 | "requires": {
1822 | "is-number": "^7.0.0"
1823 | }
1824 | },
1825 | "toidentifier": {
1826 | "version": "1.0.0",
1827 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
1828 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
1829 | },
1830 | "touch": {
1831 | "version": "3.1.0",
1832 | "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
1833 | "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
1834 | "requires": {
1835 | "nopt": "~1.0.10"
1836 | },
1837 | "dependencies": {
1838 | "nopt": {
1839 | "version": "1.0.10",
1840 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
1841 | "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
1842 | "requires": {
1843 | "abbrev": "1"
1844 | }
1845 | }
1846 | }
1847 | },
1848 | "tr46": {
1849 | "version": "0.0.3",
1850 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
1851 | "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
1852 | },
1853 | "tree-kill": {
1854 | "version": "1.2.2",
1855 | "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
1856 | "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A=="
1857 | },
1858 | "tslib": {
1859 | "version": "1.14.1",
1860 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
1861 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
1862 | },
1863 | "type-fest": {
1864 | "version": "0.20.2",
1865 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
1866 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
1867 | },
1868 | "type-is": {
1869 | "version": "1.6.18",
1870 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1871 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1872 | "requires": {
1873 | "media-typer": "0.3.0",
1874 | "mime-types": "~2.1.24"
1875 | }
1876 | },
1877 | "typedarray-to-buffer": {
1878 | "version": "3.1.5",
1879 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
1880 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
1881 | "requires": {
1882 | "is-typedarray": "^1.0.0"
1883 | }
1884 | },
1885 | "undefsafe": {
1886 | "version": "2.0.5",
1887 | "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
1888 | "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA=="
1889 | },
1890 | "unique-string": {
1891 | "version": "2.0.0",
1892 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
1893 | "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
1894 | "requires": {
1895 | "crypto-random-string": "^2.0.0"
1896 | }
1897 | },
1898 | "unpipe": {
1899 | "version": "1.0.0",
1900 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1901 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
1902 | },
1903 | "update-notifier": {
1904 | "version": "5.1.0",
1905 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz",
1906 | "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==",
1907 | "requires": {
1908 | "boxen": "^5.0.0",
1909 | "chalk": "^4.1.0",
1910 | "configstore": "^5.0.1",
1911 | "has-yarn": "^2.1.0",
1912 | "import-lazy": "^2.1.0",
1913 | "is-ci": "^2.0.0",
1914 | "is-installed-globally": "^0.4.0",
1915 | "is-npm": "^5.0.0",
1916 | "is-yarn-global": "^0.3.0",
1917 | "latest-version": "^5.1.0",
1918 | "pupa": "^2.1.1",
1919 | "semver": "^7.3.4",
1920 | "semver-diff": "^3.1.1",
1921 | "xdg-basedir": "^4.0.0"
1922 | }
1923 | },
1924 | "url-parse-lax": {
1925 | "version": "3.0.0",
1926 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
1927 | "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
1928 | "requires": {
1929 | "prepend-http": "^2.0.0"
1930 | }
1931 | },
1932 | "util": {
1933 | "version": "0.10.4",
1934 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
1935 | "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
1936 | "requires": {
1937 | "inherits": "2.0.3"
1938 | },
1939 | "dependencies": {
1940 | "inherits": {
1941 | "version": "2.0.3",
1942 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1943 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
1944 | }
1945 | }
1946 | },
1947 | "util-deprecate": {
1948 | "version": "1.0.2",
1949 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1950 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
1951 | },
1952 | "utils-merge": {
1953 | "version": "1.0.1",
1954 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1955 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
1956 | },
1957 | "vary": {
1958 | "version": "1.1.2",
1959 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1960 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
1961 | },
1962 | "webidl-conversions": {
1963 | "version": "3.0.1",
1964 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
1965 | "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
1966 | },
1967 | "whatwg-url": {
1968 | "version": "5.0.0",
1969 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
1970 | "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
1971 | "requires": {
1972 | "tr46": "~0.0.3",
1973 | "webidl-conversions": "^3.0.0"
1974 | }
1975 | },
1976 | "wide-align": {
1977 | "version": "1.1.5",
1978 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
1979 | "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
1980 | "requires": {
1981 | "string-width": "^1.0.2 || 2 || 3 || 4"
1982 | }
1983 | },
1984 | "widest-line": {
1985 | "version": "3.1.0",
1986 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
1987 | "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
1988 | "requires": {
1989 | "string-width": "^4.0.0"
1990 | },
1991 | "dependencies": {
1992 | "ansi-regex": {
1993 | "version": "5.0.1",
1994 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1995 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
1996 | },
1997 | "is-fullwidth-code-point": {
1998 | "version": "3.0.0",
1999 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
2000 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
2001 | },
2002 | "string-width": {
2003 | "version": "4.2.3",
2004 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2005 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2006 | "requires": {
2007 | "emoji-regex": "^8.0.0",
2008 | "is-fullwidth-code-point": "^3.0.0",
2009 | "strip-ansi": "^6.0.1"
2010 | }
2011 | },
2012 | "strip-ansi": {
2013 | "version": "6.0.1",
2014 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2015 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2016 | "requires": {
2017 | "ansi-regex": "^5.0.1"
2018 | }
2019 | }
2020 | }
2021 | },
2022 | "wrap-ansi": {
2023 | "version": "7.0.0",
2024 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
2025 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
2026 | "requires": {
2027 | "ansi-styles": "^4.0.0",
2028 | "string-width": "^4.1.0",
2029 | "strip-ansi": "^6.0.0"
2030 | },
2031 | "dependencies": {
2032 | "ansi-regex": {
2033 | "version": "5.0.1",
2034 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
2035 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
2036 | },
2037 | "is-fullwidth-code-point": {
2038 | "version": "3.0.0",
2039 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
2040 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
2041 | },
2042 | "string-width": {
2043 | "version": "4.2.3",
2044 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2045 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2046 | "requires": {
2047 | "emoji-regex": "^8.0.0",
2048 | "is-fullwidth-code-point": "^3.0.0",
2049 | "strip-ansi": "^6.0.1"
2050 | }
2051 | },
2052 | "strip-ansi": {
2053 | "version": "6.0.1",
2054 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2055 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2056 | "requires": {
2057 | "ansi-regex": "^5.0.1"
2058 | }
2059 | }
2060 | }
2061 | },
2062 | "wrappy": {
2063 | "version": "1.0.2",
2064 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2065 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
2066 | },
2067 | "write-file-atomic": {
2068 | "version": "3.0.3",
2069 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
2070 | "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
2071 | "requires": {
2072 | "imurmurhash": "^0.1.4",
2073 | "is-typedarray": "^1.0.0",
2074 | "signal-exit": "^3.0.2",
2075 | "typedarray-to-buffer": "^3.1.5"
2076 | }
2077 | },
2078 | "xdg-basedir": {
2079 | "version": "4.0.0",
2080 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
2081 | "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q=="
2082 | },
2083 | "y18n": {
2084 | "version": "5.0.8",
2085 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
2086 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
2087 | },
2088 | "yallist": {
2089 | "version": "4.0.0",
2090 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
2091 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
2092 | },
2093 | "yargs": {
2094 | "version": "16.2.0",
2095 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
2096 | "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
2097 | "requires": {
2098 | "cliui": "^7.0.2",
2099 | "escalade": "^3.1.1",
2100 | "get-caller-file": "^2.0.5",
2101 | "require-directory": "^2.1.1",
2102 | "string-width": "^4.2.0",
2103 | "y18n": "^5.0.5",
2104 | "yargs-parser": "^20.2.2"
2105 | },
2106 | "dependencies": {
2107 | "ansi-regex": {
2108 | "version": "5.0.1",
2109 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
2110 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
2111 | },
2112 | "is-fullwidth-code-point": {
2113 | "version": "3.0.0",
2114 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
2115 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
2116 | },
2117 | "string-width": {
2118 | "version": "4.2.3",
2119 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2120 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2121 | "requires": {
2122 | "emoji-regex": "^8.0.0",
2123 | "is-fullwidth-code-point": "^3.0.0",
2124 | "strip-ansi": "^6.0.1"
2125 | }
2126 | },
2127 | "strip-ansi": {
2128 | "version": "6.0.1",
2129 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2130 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2131 | "requires": {
2132 | "ansi-regex": "^5.0.1"
2133 | }
2134 | }
2135 | }
2136 | },
2137 | "yargs-parser": {
2138 | "version": "20.2.9",
2139 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
2140 | "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
2141 | }
2142 | }
2143 | }
2144 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "expense-tracking",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "server.js",
6 | "scripts": {
7 | "start": "nodemon server.js",
8 | "frontend": "npm run dev --prefix frontend",
9 | "dev": "concurrently \"npm start\" \"npm run frontend\" "
10 | },
11 | "author": "",
12 | "license": "ISC",
13 | "dependencies": {
14 | "axios": "^0.23.0",
15 | "bcrypt": "^5.0.1",
16 | "body-parser": "^1.19.0",
17 | "concurrently": "^6.3.0",
18 | "cors": "^2.8.5",
19 | "express": "^4.17.1",
20 | "express-async-handler": "^1.2.0",
21 | "mongoose": "^6.0.12",
22 | "morgan": "^1.10.0",
23 | "nodemon": "^2.0.14",
24 | "path": "^0.12.7"
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/routes/transactions.js:
--------------------------------------------------------------------------------
1 | const { Router } = require('express')
2 | const Transaction = require('../models/Transactions')
3 |
4 | const router = Router()
5 |
6 | router.get('/', async (req, res) => {
7 | console.log('here');
8 | try {
9 | const transactions = await Transaction.find()
10 | if (!transactions) {
11 | throw new Error('No transactions')
12 | }
13 | res.status(200).json(transactions)
14 | } catch (error) {
15 | res.status(400).json({ message: error.message })
16 | }
17 | })
18 |
19 | router.post('/', async (req, res) => {
20 | const { value, date } = req.body
21 | const newTransaction = new Transaction({ value, date })
22 |
23 | console.log(req.body);
24 | try {
25 | const transaction = await newTransaction.save()
26 | if (!transaction) {
27 | throw new Error('There was an error saving the transaction')
28 | }
29 | res.status(200).json(transaction)
30 | } catch (error) {
31 | res.status(500).json({ message: error.message })
32 | }
33 | })
34 |
35 | router.delete('/:id', async (req, res) => {
36 | const { id } = req.params
37 | try {
38 | const transaction = await Transaction.findById(id)
39 | if (!transaction) {
40 | throw new Error('No transaction was found')
41 | }
42 | const removed = await transaction.remove()
43 |
44 | if (!removed) {
45 | throw new Error('There was a problem deleting the transaction')
46 | }
47 | res.status(200).json({ id })
48 | } catch (error) {
49 | res.status(404).json({ message: error.message })
50 | }
51 | })
52 |
53 | module.exports = router
--------------------------------------------------------------------------------
/server.js:
--------------------------------------------------------------------------------
1 | const express = require('express')
2 | const app = express()
3 | const mongoose = require('mongoose')
4 | const cors = require('cors')
5 | const bodyParser = require('body-parser')
6 | const morgan = require('morgan')
7 | // const { port, mongoURI } = require('./config')
8 | const transactionsRoutes = require('./routes/transactions')
9 | const path = require('path')
10 |
11 | app.use(cors())
12 | app.use(bodyParser.json())
13 | app.use(morgan('tiny'))
14 |
15 | mongoose.connect("mongodb+srv://ashar1:ashar1@cluster0.ybb8j.mongodb.net/Expense-Tracker?retryWrites=true&w=majority" , {
16 | useNewUrlParser : true ,
17 | useCreateIndex : true ,
18 | useUnifiedTopology : true } ,
19 | ()=>{console.log("connected to the DB")}
20 | )
21 |
22 | app.use('/api/transactions', transactionsRoutes)
23 | app.get('/' , (req, res) => res.send('Svelte bitches!') )
24 |
25 | // if (process.env.NODE_ENV === 'production') {
26 | // app.use(express.static('client/public'))
27 | // app.get('*', (req, res) => {
28 | // res.sendFile(path.resolve(__dirname, 'client', 'public', 'index.html'))
29 | // })
30 | // }
31 |
32 | app.listen( 3000, () => console.log('Express is running at port ' + 3000))
--------------------------------------------------------------------------------