├── .github
└── workflows
│ └── main.yml
├── .gitignore
├── LICENSE
├── README.md
├── package-lock.json
├── package.json
└── src
└── index.js
/.github/workflows/main.yml:
--------------------------------------------------------------------------------
1 | # This is a basic workflow to help you get started with Actions
2 |
3 | name: CI
4 |
5 | # Controls when the action will run.
6 | on:
7 | # Triggers the workflow on push or pull request events but only for the main branch
8 | push:
9 | branches: [ main ]
10 | pull_request:
11 | branches: [ main ]
12 |
13 | # Allows you to run this workflow manually from the Actions tab
14 | workflow_dispatch:
15 |
16 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel
17 | jobs:
18 | # This workflow contains a single job called "build"
19 | build-linux:
20 | # The type of runner that the job will run on
21 | runs-on: ubuntu-latest
22 |
23 | strategy:
24 | matrix:
25 | node-version: [14.x]
26 |
27 | # Steps represent a sequence of tasks that will be executed as part of the job
28 | steps:
29 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
30 | - uses: actions/checkout@v2
31 |
32 | - name: Use Node.js ${{ matrix.node-version }}
33 | uses: actions/setup-node@v1
34 | with:
35 | node-version: ${{ matrix.node-version }}
36 |
37 | - name: Install Qt
38 | uses: jurplel/install-qt-action@v2.13.0
39 |
40 | # Runs a set of commands using the runners shell
41 | - name: Run a multi-line script
42 | run: |
43 | cd $GITHUB_WORKSPACE
44 | npm ci
45 | npx nodegui-packer --init score-fetcher
46 | npx nodegui-packer --pack ./src/
47 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 |
9 | # Diagnostic reports (https://nodejs.org/api/report.html)
10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11 |
12 | # Runtime data
13 | pids
14 | *.pid
15 | *.seed
16 | *.pid.lock
17 |
18 | # Directory for instrumented libs generated by jscoverage/JSCover
19 | lib-cov
20 |
21 | # Coverage directory used by tools like istanbul
22 | coverage
23 | *.lcov
24 |
25 | # nyc test coverage
26 | .nyc_output
27 |
28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
29 | .grunt
30 |
31 | # Bower dependency directory (https://bower.io/)
32 | bower_components
33 |
34 | # node-waf configuration
35 | .lock-wscript
36 |
37 | # Compiled binary addons (https://nodejs.org/api/addons.html)
38 | build/Release
39 |
40 | # Dependency directories
41 | node_modules/
42 | jspm_packages/
43 |
44 | # TypeScript v1 declaration files
45 | typings/
46 |
47 | # TypeScript cache
48 | *.tsbuildinfo
49 |
50 | # Optional npm cache directory
51 | .npm
52 |
53 | # Optional eslint cache
54 | .eslintcache
55 |
56 | # Microbundle cache
57 | .rpt2_cache/
58 | .rts2_cache_cjs/
59 | .rts2_cache_es/
60 | .rts2_cache_umd/
61 |
62 | # Optional REPL history
63 | .node_repl_history
64 |
65 | # Output of 'npm pack'
66 | *.tgz
67 |
68 | # Yarn Integrity file
69 | .yarn-integrity
70 |
71 | # dotenv environment variables file
72 | .env
73 | .env.test
74 |
75 | # parcel-bundler cache (https://parceljs.org/)
76 | .cache
77 |
78 | # Next.js build output
79 | .next
80 |
81 | # Nuxt.js build / generate output
82 | .nuxt
83 | dist
84 |
85 | # Gatsby files
86 | .cache/
87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js
88 | # https://nextjs.org/blog/next-9-1#public-directory-support
89 | # public
90 |
91 | # vuepress build output
92 | .vuepress/dist
93 |
94 | # Serverless directories
95 | .serverless/
96 |
97 | # FuseBox cache
98 | .fusebox/
99 |
100 | # DynamoDB Local files
101 | .dynamodb/
102 |
103 | # TernJS port file
104 | .tern-port
105 |
106 | config.json
107 | deploy
108 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Lea Phant
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # score-fetcher
2 | Qt-based cross platform application to fetch all osu! scores by a user
3 |
4 | 
5 |
6 | ### Prerequisites
7 | - Node.js (https://nodejs.org)
8 | - CMake (https://cmake.org/download)
9 | - osu! account (https://osu.ppy.sh)
10 |
11 | ### Setup
12 | ```Bash
13 | git clone https://github.com/LeaPhant/score-fetcher.git
14 | cd score-fetcher
15 | npm i
16 | ```
17 |
18 | ### Usage
19 | Start with
20 | ```Bash
21 | npm run start
22 | ```
23 |
24 | **Hint:** On first launch you will be asked to enter credentials for an osu! OAuth applications with instructions on how to get them.
25 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "score-fetcher",
3 | "version": "1.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "version": "1.0.0",
9 | "license": "MIT",
10 | "dependencies": {
11 | "@nodegui/nodegui": "^0.30.2",
12 | "@vercel/fetch-retry": "^5.0.3",
13 | "node-fetch": "^2.6.1"
14 | },
15 | "devDependencies": {
16 | "@nodegui/packer": "^1.4.1"
17 | }
18 | },
19 | "node_modules/@nodegui/artifact-installer": {
20 | "version": "1.1.0",
21 | "resolved": "https://registry.npmjs.org/@nodegui/artifact-installer/-/artifact-installer-1.1.0.tgz",
22 | "integrity": "sha512-x/rIewhjnLhf2b3lAy5ZIPSTS39LRpwMTKeEg6sn4RwvWwyNmreGzpvGi6Gkbl6FUpftn70nfOBOpaeO3hO8PQ==",
23 | "dependencies": {
24 | "7zip-min": "^1.1.1",
25 | "env-paths": "^2.2.0",
26 | "make-dir": "^3.0.0",
27 | "node-fetch": "^2.6.0",
28 | "progress": "^2.0.3"
29 | }
30 | },
31 | "node_modules/@nodegui/nodegui": {
32 | "version": "0.30.2",
33 | "resolved": "https://registry.npmjs.org/@nodegui/nodegui/-/nodegui-0.30.2.tgz",
34 | "integrity": "sha512-UhUCH6bqaaeMoRFfQBMc0mEozwtF4slV3agwUHkEw9zuLcM+1JZewKIiaKnSHMtYdrbgkIohTDsYxlwHgAXv+A==",
35 | "dependencies": {
36 | "@nodegui/artifact-installer": "^1.1.0",
37 | "@nodegui/qode": "^2.1.0",
38 | "cmake-js": "^6.1.0",
39 | "cross-env": "^7.0.3",
40 | "cuid": "^2.1.6",
41 | "manage-path": "^2.0.0",
42 | "memoize-one": "^5.1.1",
43 | "node-addon-api": "^3.1.0",
44 | "postcss-nodegui-autoprefixer": "0.0.7"
45 | },
46 | "bin": {
47 | "qode": "scripts/qode.js"
48 | }
49 | },
50 | "node_modules/@nodegui/packer": {
51 | "version": "1.4.1",
52 | "resolved": "https://registry.npmjs.org/@nodegui/packer/-/packer-1.4.1.tgz",
53 | "integrity": "sha512-jmw2uuaiXZIW+Vxx4WpNFxkjzcqKRAT/VBf7jKbK4IIr1OW+G0ufYA4K5bGGlGG/4iE1oOLCLHbIRmSTYkfslw==",
54 | "dev": true,
55 | "dependencies": {
56 | "@nodegui/artifact-installer": "^1.0.0",
57 | "commander": "^4.0.1",
58 | "fs-extra": "^8.1.0",
59 | "plist": "^3.0.1"
60 | },
61 | "bin": {
62 | "nodegui-packer": "dist/cli.js"
63 | }
64 | },
65 | "node_modules/@nodegui/packer/node_modules/fs-extra": {
66 | "version": "8.1.0",
67 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
68 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
69 | "dev": true,
70 | "dependencies": {
71 | "graceful-fs": "^4.2.0",
72 | "jsonfile": "^4.0.0",
73 | "universalify": "^0.1.0"
74 | },
75 | "engines": {
76 | "node": ">=6 <7 || >=8"
77 | }
78 | },
79 | "node_modules/@nodegui/qode": {
80 | "version": "2.1.0",
81 | "resolved": "https://registry.npmjs.org/@nodegui/qode/-/qode-2.1.0.tgz",
82 | "integrity": "sha512-R31K60Vba4yO2Fy3qXXJkt7XMZnitDhuAVaibSGSbcBJbHhJh0+pDQjzZve1+uY7tCHFIY0oRq3tb70o/BrPZQ==",
83 | "dependencies": {
84 | "env-paths": "^2.2.0",
85 | "make-dir": "^3.0.2",
86 | "node-fetch": "^2.6.0",
87 | "progress": "^2.0.3",
88 | "tar": "^6.0.1"
89 | }
90 | },
91 | "node_modules/@vercel/fetch-retry": {
92 | "version": "5.0.3",
93 | "resolved": "https://registry.npmjs.org/@vercel/fetch-retry/-/fetch-retry-5.0.3.tgz",
94 | "integrity": "sha512-DIIoBY92r+sQ6iHSf5WjKiYvkdsDIMPWKYATlE0KcUAj2RV6SZK9UWpUzBRKsofXqedOqpVjrI0IE6AWL7JRtg==",
95 | "dependencies": {
96 | "async-retry": "^1.3.1",
97 | "debug": "^3.1.0"
98 | },
99 | "peerDependencies": {
100 | "node-fetch": "*"
101 | }
102 | },
103 | "node_modules/@vercel/fetch-retry/node_modules/debug": {
104 | "version": "3.2.7",
105 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
106 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
107 | "dependencies": {
108 | "ms": "^2.1.1"
109 | }
110 | },
111 | "node_modules/7zip-bin": {
112 | "version": "5.1.0",
113 | "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.0.tgz",
114 | "integrity": "sha512-nOZl6SsZFpcKvq7oRxdbBwrhYQ+/iXgWqehnw5meQAeRyP+OzR0CWPE5IDXhQbTVgZxrsgmTk+xs6tVTzqkw+w=="
115 | },
116 | "node_modules/7zip-min": {
117 | "version": "1.3.0",
118 | "resolved": "https://registry.npmjs.org/7zip-min/-/7zip-min-1.3.0.tgz",
119 | "integrity": "sha512-gM156Jr4tF1Kq1RyQFJrNzH71VzrlIfCLZFUkvFX/IFJXYQB6rXgBlCCaDhoz6x8GDeNcfwLeF5gnodXBI0riA==",
120 | "dependencies": {
121 | "7zip-bin": "^5.0.3"
122 | }
123 | },
124 | "node_modules/ajv": {
125 | "version": "6.12.6",
126 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
127 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
128 | "dependencies": {
129 | "fast-deep-equal": "^3.1.1",
130 | "fast-json-stable-stringify": "^2.0.0",
131 | "json-schema-traverse": "^0.4.1",
132 | "uri-js": "^4.2.2"
133 | }
134 | },
135 | "node_modules/ansi": {
136 | "version": "0.3.1",
137 | "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
138 | "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE="
139 | },
140 | "node_modules/ansi-regex": {
141 | "version": "2.1.1",
142 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
143 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
144 | "engines": {
145 | "node": ">=0.10.0"
146 | }
147 | },
148 | "node_modules/ansi-styles": {
149 | "version": "3.2.1",
150 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
151 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
152 | "dependencies": {
153 | "color-convert": "^1.9.0"
154 | },
155 | "engines": {
156 | "node": ">=4"
157 | }
158 | },
159 | "node_modules/are-we-there-yet": {
160 | "version": "1.0.6",
161 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.6.tgz",
162 | "integrity": "sha1-otKMkxAqpsyWJFomy5VN4G7FPww=",
163 | "dependencies": {
164 | "delegates": "^1.0.0",
165 | "readable-stream": "^2.0.0 || ^1.1.13"
166 | }
167 | },
168 | "node_modules/are-we-there-yet/node_modules/isarray": {
169 | "version": "1.0.0",
170 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
171 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
172 | },
173 | "node_modules/are-we-there-yet/node_modules/readable-stream": {
174 | "version": "2.3.7",
175 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
176 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
177 | "dependencies": {
178 | "core-util-is": "~1.0.0",
179 | "inherits": "~2.0.3",
180 | "isarray": "~1.0.0",
181 | "process-nextick-args": "~2.0.0",
182 | "safe-buffer": "~5.1.1",
183 | "string_decoder": "~1.1.1",
184 | "util-deprecate": "~1.0.1"
185 | }
186 | },
187 | "node_modules/are-we-there-yet/node_modules/safe-buffer": {
188 | "version": "5.1.2",
189 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
190 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
191 | },
192 | "node_modules/are-we-there-yet/node_modules/string_decoder": {
193 | "version": "1.1.1",
194 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
195 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
196 | "dependencies": {
197 | "safe-buffer": "~5.1.0"
198 | }
199 | },
200 | "node_modules/asn1": {
201 | "version": "0.2.4",
202 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
203 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
204 | "dependencies": {
205 | "safer-buffer": "~2.1.0"
206 | }
207 | },
208 | "node_modules/assert-plus": {
209 | "version": "1.0.0",
210 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
211 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
212 | "engines": {
213 | "node": ">=0.8"
214 | }
215 | },
216 | "node_modules/async-retry": {
217 | "version": "1.3.1",
218 | "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz",
219 | "integrity": "sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==",
220 | "dependencies": {
221 | "retry": "0.12.0"
222 | }
223 | },
224 | "node_modules/asynckit": {
225 | "version": "0.4.0",
226 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
227 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
228 | },
229 | "node_modules/aws-sign2": {
230 | "version": "0.7.0",
231 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
232 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
233 | "engines": {
234 | "node": "*"
235 | }
236 | },
237 | "node_modules/aws4": {
238 | "version": "1.11.0",
239 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
240 | "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
241 | },
242 | "node_modules/balanced-match": {
243 | "version": "1.0.0",
244 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
245 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
246 | },
247 | "node_modules/base64-js": {
248 | "version": "1.5.1",
249 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
250 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
251 | "dev": true
252 | },
253 | "node_modules/bcrypt-pbkdf": {
254 | "version": "1.0.2",
255 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
256 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
257 | "dependencies": {
258 | "tweetnacl": "^0.14.3"
259 | }
260 | },
261 | "node_modules/big-integer": {
262 | "version": "1.6.48",
263 | "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz",
264 | "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==",
265 | "engines": {
266 | "node": ">=0.6"
267 | }
268 | },
269 | "node_modules/binary": {
270 | "version": "0.3.0",
271 | "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
272 | "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=",
273 | "dependencies": {
274 | "buffers": "~0.1.1",
275 | "chainsaw": "~0.1.0"
276 | }
277 | },
278 | "node_modules/bluebird": {
279 | "version": "3.4.7",
280 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
281 | "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM="
282 | },
283 | "node_modules/brace-expansion": {
284 | "version": "1.1.11",
285 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
286 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
287 | "dependencies": {
288 | "balanced-match": "^1.0.0",
289 | "concat-map": "0.0.1"
290 | }
291 | },
292 | "node_modules/buffer-indexof-polyfill": {
293 | "version": "1.0.2",
294 | "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
295 | "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==",
296 | "engines": {
297 | "node": ">=0.10"
298 | }
299 | },
300 | "node_modules/buffer-shims": {
301 | "version": "1.0.0",
302 | "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
303 | "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E="
304 | },
305 | "node_modules/buffers": {
306 | "version": "0.1.1",
307 | "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
308 | "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=",
309 | "engines": {
310 | "node": ">=0.2.0"
311 | }
312 | },
313 | "node_modules/camelcase": {
314 | "version": "2.1.1",
315 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
316 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
317 | "engines": {
318 | "node": ">=0.10.0"
319 | }
320 | },
321 | "node_modules/caseless": {
322 | "version": "0.12.0",
323 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
324 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
325 | },
326 | "node_modules/chainsaw": {
327 | "version": "0.1.0",
328 | "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
329 | "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=",
330 | "dependencies": {
331 | "traverse": ">=0.3.0 <0.4"
332 | }
333 | },
334 | "node_modules/chalk": {
335 | "version": "2.4.2",
336 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
337 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
338 | "dependencies": {
339 | "ansi-styles": "^3.2.1",
340 | "escape-string-regexp": "^1.0.5",
341 | "supports-color": "^5.3.0"
342 | },
343 | "engines": {
344 | "node": ">=4"
345 | }
346 | },
347 | "node_modules/chalk/node_modules/supports-color": {
348 | "version": "5.5.0",
349 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
350 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
351 | "dependencies": {
352 | "has-flag": "^3.0.0"
353 | },
354 | "engines": {
355 | "node": ">=4"
356 | }
357 | },
358 | "node_modules/chownr": {
359 | "version": "2.0.0",
360 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
361 | "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
362 | "engines": {
363 | "node": ">=10"
364 | }
365 | },
366 | "node_modules/cliui": {
367 | "version": "3.2.0",
368 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
369 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
370 | "dependencies": {
371 | "string-width": "^1.0.1",
372 | "strip-ansi": "^3.0.1",
373 | "wrap-ansi": "^2.0.0"
374 | }
375 | },
376 | "node_modules/cmake-js": {
377 | "version": "6.1.0",
378 | "resolved": "https://registry.npmjs.org/cmake-js/-/cmake-js-6.1.0.tgz",
379 | "integrity": "sha512-utmukLQftpgrCpGRCaHnkv4K27HZNNFqmBl4vnvccy0xp4c1erxjFU/Lq4wn5ngAhFZmpwBPQfoKWKThjSBiwg==",
380 | "dependencies": {
381 | "debug": "^4",
382 | "fs-extra": "^5.0.0",
383 | "is-iojs": "^1.0.1",
384 | "lodash": "^4",
385 | "memory-stream": "0",
386 | "npmlog": "^1.2.0",
387 | "rc": "^1.2.7",
388 | "request": "^2.54.0",
389 | "semver": "^5.0.3",
390 | "splitargs": "0",
391 | "tar": "^4",
392 | "unzipper": "^0.8.13",
393 | "url-join": "0",
394 | "which": "^1.0.9",
395 | "yargs": "^3.6.0"
396 | },
397 | "bin": {
398 | "cmake-js": "bin/cmake-js"
399 | },
400 | "engines": {
401 | "node": ">= 10.0.0"
402 | }
403 | },
404 | "node_modules/cmake-js/node_modules/chownr": {
405 | "version": "1.1.4",
406 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
407 | "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
408 | },
409 | "node_modules/cmake-js/node_modules/fs-minipass": {
410 | "version": "1.2.7",
411 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
412 | "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
413 | "dependencies": {
414 | "minipass": "^2.6.0"
415 | }
416 | },
417 | "node_modules/cmake-js/node_modules/minipass": {
418 | "version": "2.9.0",
419 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
420 | "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
421 | "dependencies": {
422 | "safe-buffer": "^5.1.2",
423 | "yallist": "^3.0.0"
424 | }
425 | },
426 | "node_modules/cmake-js/node_modules/minizlib": {
427 | "version": "1.3.3",
428 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
429 | "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
430 | "dependencies": {
431 | "minipass": "^2.9.0"
432 | }
433 | },
434 | "node_modules/cmake-js/node_modules/mkdirp": {
435 | "version": "0.5.5",
436 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
437 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
438 | "dependencies": {
439 | "minimist": "^1.2.5"
440 | },
441 | "bin": {
442 | "mkdirp": "bin/cmd.js"
443 | }
444 | },
445 | "node_modules/cmake-js/node_modules/tar": {
446 | "version": "4.4.13",
447 | "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
448 | "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
449 | "dependencies": {
450 | "chownr": "^1.1.1",
451 | "fs-minipass": "^1.2.5",
452 | "minipass": "^2.8.6",
453 | "minizlib": "^1.2.1",
454 | "mkdirp": "^0.5.0",
455 | "safe-buffer": "^5.1.2",
456 | "yallist": "^3.0.3"
457 | },
458 | "engines": {
459 | "node": ">=4.5"
460 | }
461 | },
462 | "node_modules/cmake-js/node_modules/yallist": {
463 | "version": "3.1.1",
464 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
465 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
466 | },
467 | "node_modules/code-point-at": {
468 | "version": "1.1.0",
469 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
470 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
471 | "engines": {
472 | "node": ">=0.10.0"
473 | }
474 | },
475 | "node_modules/color-convert": {
476 | "version": "1.9.3",
477 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
478 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
479 | "dependencies": {
480 | "color-name": "1.1.3"
481 | }
482 | },
483 | "node_modules/color-name": {
484 | "version": "1.1.3",
485 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
486 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
487 | },
488 | "node_modules/combined-stream": {
489 | "version": "1.0.8",
490 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
491 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
492 | "dependencies": {
493 | "delayed-stream": "~1.0.0"
494 | },
495 | "engines": {
496 | "node": ">= 0.8"
497 | }
498 | },
499 | "node_modules/commander": {
500 | "version": "4.1.1",
501 | "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
502 | "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
503 | "dev": true,
504 | "engines": {
505 | "node": ">= 6"
506 | }
507 | },
508 | "node_modules/concat-map": {
509 | "version": "0.0.1",
510 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
511 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
512 | },
513 | "node_modules/core-util-is": {
514 | "version": "1.0.2",
515 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
516 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
517 | },
518 | "node_modules/cross-env": {
519 | "version": "7.0.3",
520 | "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
521 | "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
522 | "dependencies": {
523 | "cross-spawn": "^7.0.1"
524 | },
525 | "bin": {
526 | "cross-env": "src/bin/cross-env.js",
527 | "cross-env-shell": "src/bin/cross-env-shell.js"
528 | },
529 | "engines": {
530 | "node": ">=10.14",
531 | "npm": ">=6",
532 | "yarn": ">=1"
533 | }
534 | },
535 | "node_modules/cross-spawn": {
536 | "version": "7.0.3",
537 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
538 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
539 | "dependencies": {
540 | "path-key": "^3.1.0",
541 | "shebang-command": "^2.0.0",
542 | "which": "^2.0.1"
543 | },
544 | "engines": {
545 | "node": ">= 8"
546 | }
547 | },
548 | "node_modules/cross-spawn/node_modules/which": {
549 | "version": "2.0.2",
550 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
551 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
552 | "dependencies": {
553 | "isexe": "^2.0.0"
554 | },
555 | "bin": {
556 | "node-which": "bin/node-which"
557 | },
558 | "engines": {
559 | "node": ">= 8"
560 | }
561 | },
562 | "node_modules/cuid": {
563 | "version": "2.1.8",
564 | "resolved": "https://registry.npmjs.org/cuid/-/cuid-2.1.8.tgz",
565 | "integrity": "sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg=="
566 | },
567 | "node_modules/dashdash": {
568 | "version": "1.14.1",
569 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
570 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
571 | "dependencies": {
572 | "assert-plus": "^1.0.0"
573 | },
574 | "engines": {
575 | "node": ">=0.10"
576 | }
577 | },
578 | "node_modules/debug": {
579 | "version": "4.3.1",
580 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
581 | "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
582 | "dependencies": {
583 | "ms": "2.1.2"
584 | },
585 | "engines": {
586 | "node": ">=6.0"
587 | }
588 | },
589 | "node_modules/decamelize": {
590 | "version": "1.2.0",
591 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
592 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
593 | "engines": {
594 | "node": ">=0.10.0"
595 | }
596 | },
597 | "node_modules/deep-extend": {
598 | "version": "0.6.0",
599 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
600 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
601 | "engines": {
602 | "node": ">=4.0.0"
603 | }
604 | },
605 | "node_modules/delayed-stream": {
606 | "version": "1.0.0",
607 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
608 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
609 | "engines": {
610 | "node": ">=0.4.0"
611 | }
612 | },
613 | "node_modules/delegates": {
614 | "version": "1.0.0",
615 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
616 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
617 | },
618 | "node_modules/duplexer2": {
619 | "version": "0.1.4",
620 | "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
621 | "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
622 | "dependencies": {
623 | "readable-stream": "^2.0.2"
624 | }
625 | },
626 | "node_modules/duplexer2/node_modules/isarray": {
627 | "version": "1.0.0",
628 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
629 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
630 | },
631 | "node_modules/duplexer2/node_modules/readable-stream": {
632 | "version": "2.3.7",
633 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
634 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
635 | "dependencies": {
636 | "core-util-is": "~1.0.0",
637 | "inherits": "~2.0.3",
638 | "isarray": "~1.0.0",
639 | "process-nextick-args": "~2.0.0",
640 | "safe-buffer": "~5.1.1",
641 | "string_decoder": "~1.1.1",
642 | "util-deprecate": "~1.0.1"
643 | }
644 | },
645 | "node_modules/duplexer2/node_modules/safe-buffer": {
646 | "version": "5.1.2",
647 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
648 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
649 | },
650 | "node_modules/duplexer2/node_modules/string_decoder": {
651 | "version": "1.1.1",
652 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
653 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
654 | "dependencies": {
655 | "safe-buffer": "~5.1.0"
656 | }
657 | },
658 | "node_modules/ecc-jsbn": {
659 | "version": "0.1.2",
660 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
661 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
662 | "dependencies": {
663 | "jsbn": "~0.1.0",
664 | "safer-buffer": "^2.1.0"
665 | }
666 | },
667 | "node_modules/env-paths": {
668 | "version": "2.2.1",
669 | "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
670 | "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
671 | "engines": {
672 | "node": ">=6"
673 | }
674 | },
675 | "node_modules/escape-string-regexp": {
676 | "version": "1.0.5",
677 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
678 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
679 | "engines": {
680 | "node": ">=0.8.0"
681 | }
682 | },
683 | "node_modules/extend": {
684 | "version": "3.0.2",
685 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
686 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
687 | },
688 | "node_modules/extsprintf": {
689 | "version": "1.3.0",
690 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
691 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
692 | "engines": [
693 | "node >=0.6.0"
694 | ]
695 | },
696 | "node_modules/fast-deep-equal": {
697 | "version": "3.1.3",
698 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
699 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
700 | },
701 | "node_modules/fast-json-stable-stringify": {
702 | "version": "2.1.0",
703 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
704 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
705 | },
706 | "node_modules/forever-agent": {
707 | "version": "0.6.1",
708 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
709 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
710 | "engines": {
711 | "node": "*"
712 | }
713 | },
714 | "node_modules/form-data": {
715 | "version": "2.3.3",
716 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
717 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
718 | "dependencies": {
719 | "asynckit": "^0.4.0",
720 | "combined-stream": "^1.0.6",
721 | "mime-types": "^2.1.12"
722 | },
723 | "engines": {
724 | "node": ">= 0.12"
725 | }
726 | },
727 | "node_modules/fs-extra": {
728 | "version": "5.0.0",
729 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz",
730 | "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==",
731 | "dependencies": {
732 | "graceful-fs": "^4.1.2",
733 | "jsonfile": "^4.0.0",
734 | "universalify": "^0.1.0"
735 | }
736 | },
737 | "node_modules/fs-minipass": {
738 | "version": "2.1.0",
739 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
740 | "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
741 | "dependencies": {
742 | "minipass": "^3.0.0"
743 | },
744 | "engines": {
745 | "node": ">= 8"
746 | }
747 | },
748 | "node_modules/fs.realpath": {
749 | "version": "1.0.0",
750 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
751 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
752 | },
753 | "node_modules/fstream": {
754 | "version": "1.0.12",
755 | "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
756 | "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
757 | "dependencies": {
758 | "graceful-fs": "^4.1.2",
759 | "inherits": "~2.0.0",
760 | "mkdirp": ">=0.5 0",
761 | "rimraf": "2"
762 | },
763 | "engines": {
764 | "node": ">=0.6"
765 | }
766 | },
767 | "node_modules/fstream/node_modules/mkdirp": {
768 | "version": "0.5.5",
769 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
770 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
771 | "dependencies": {
772 | "minimist": "^1.2.5"
773 | },
774 | "bin": {
775 | "mkdirp": "bin/cmd.js"
776 | }
777 | },
778 | "node_modules/gauge": {
779 | "version": "1.2.7",
780 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz",
781 | "integrity": "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=",
782 | "dependencies": {
783 | "ansi": "^0.3.0",
784 | "has-unicode": "^2.0.0",
785 | "lodash.pad": "^4.1.0",
786 | "lodash.padend": "^4.1.0",
787 | "lodash.padstart": "^4.1.0"
788 | }
789 | },
790 | "node_modules/getpass": {
791 | "version": "0.1.7",
792 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
793 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
794 | "dependencies": {
795 | "assert-plus": "^1.0.0"
796 | }
797 | },
798 | "node_modules/glob": {
799 | "version": "7.1.6",
800 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
801 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
802 | "dependencies": {
803 | "fs.realpath": "^1.0.0",
804 | "inflight": "^1.0.4",
805 | "inherits": "2",
806 | "minimatch": "^3.0.4",
807 | "once": "^1.3.0",
808 | "path-is-absolute": "^1.0.0"
809 | },
810 | "engines": {
811 | "node": "*"
812 | }
813 | },
814 | "node_modules/graceful-fs": {
815 | "version": "4.2.6",
816 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
817 | "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
818 | },
819 | "node_modules/har-schema": {
820 | "version": "2.0.0",
821 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
822 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
823 | "engines": {
824 | "node": ">=4"
825 | }
826 | },
827 | "node_modules/har-validator": {
828 | "version": "5.1.5",
829 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
830 | "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
831 | "dependencies": {
832 | "ajv": "^6.12.3",
833 | "har-schema": "^2.0.0"
834 | },
835 | "engines": {
836 | "node": ">=6"
837 | }
838 | },
839 | "node_modules/has-flag": {
840 | "version": "3.0.0",
841 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
842 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
843 | "engines": {
844 | "node": ">=4"
845 | }
846 | },
847 | "node_modules/has-unicode": {
848 | "version": "2.0.1",
849 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
850 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
851 | },
852 | "node_modules/http-signature": {
853 | "version": "1.2.0",
854 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
855 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
856 | "dependencies": {
857 | "assert-plus": "^1.0.0",
858 | "jsprim": "^1.2.2",
859 | "sshpk": "^1.7.0"
860 | },
861 | "engines": {
862 | "node": ">=0.8",
863 | "npm": ">=1.3.7"
864 | }
865 | },
866 | "node_modules/inflight": {
867 | "version": "1.0.6",
868 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
869 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
870 | "dependencies": {
871 | "once": "^1.3.0",
872 | "wrappy": "1"
873 | }
874 | },
875 | "node_modules/inherits": {
876 | "version": "2.0.4",
877 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
878 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
879 | },
880 | "node_modules/ini": {
881 | "version": "1.3.8",
882 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
883 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
884 | },
885 | "node_modules/invert-kv": {
886 | "version": "1.0.0",
887 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
888 | "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
889 | "engines": {
890 | "node": ">=0.10.0"
891 | }
892 | },
893 | "node_modules/is-fullwidth-code-point": {
894 | "version": "1.0.0",
895 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
896 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
897 | "dependencies": {
898 | "number-is-nan": "^1.0.0"
899 | },
900 | "engines": {
901 | "node": ">=0.10.0"
902 | }
903 | },
904 | "node_modules/is-iojs": {
905 | "version": "1.1.0",
906 | "resolved": "https://registry.npmjs.org/is-iojs/-/is-iojs-1.1.0.tgz",
907 | "integrity": "sha1-TBEDO11dlNbqs3dd7cm+fQCDJfE="
908 | },
909 | "node_modules/is-typedarray": {
910 | "version": "1.0.0",
911 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
912 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
913 | },
914 | "node_modules/isarray": {
915 | "version": "0.0.1",
916 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
917 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
918 | },
919 | "node_modules/isexe": {
920 | "version": "2.0.0",
921 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
922 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
923 | },
924 | "node_modules/isstream": {
925 | "version": "0.1.2",
926 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
927 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
928 | },
929 | "node_modules/jsbn": {
930 | "version": "0.1.1",
931 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
932 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
933 | },
934 | "node_modules/json-schema": {
935 | "version": "0.2.3",
936 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
937 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
938 | },
939 | "node_modules/json-schema-traverse": {
940 | "version": "0.4.1",
941 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
942 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
943 | },
944 | "node_modules/json-stringify-safe": {
945 | "version": "5.0.1",
946 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
947 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
948 | },
949 | "node_modules/jsonfile": {
950 | "version": "4.0.0",
951 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
952 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
953 | "dependencies": {
954 | "graceful-fs": "^4.1.6"
955 | }
956 | },
957 | "node_modules/jsprim": {
958 | "version": "1.4.1",
959 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
960 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
961 | "engines": [
962 | "node >=0.6.0"
963 | ],
964 | "dependencies": {
965 | "assert-plus": "1.0.0",
966 | "extsprintf": "1.3.0",
967 | "json-schema": "0.2.3",
968 | "verror": "1.10.0"
969 | }
970 | },
971 | "node_modules/lcid": {
972 | "version": "1.0.0",
973 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
974 | "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
975 | "dependencies": {
976 | "invert-kv": "^1.0.0"
977 | },
978 | "engines": {
979 | "node": ">=0.10.0"
980 | }
981 | },
982 | "node_modules/listenercount": {
983 | "version": "1.0.1",
984 | "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
985 | "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc="
986 | },
987 | "node_modules/lodash": {
988 | "version": "4.17.21",
989 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
990 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
991 | },
992 | "node_modules/lodash.pad": {
993 | "version": "4.5.1",
994 | "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz",
995 | "integrity": "sha1-QzCUmoM6fI2iLMIPaibE1Z3runA="
996 | },
997 | "node_modules/lodash.padend": {
998 | "version": "4.6.1",
999 | "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
1000 | "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4="
1001 | },
1002 | "node_modules/lodash.padstart": {
1003 | "version": "4.6.1",
1004 | "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz",
1005 | "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs="
1006 | },
1007 | "node_modules/make-dir": {
1008 | "version": "3.1.0",
1009 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
1010 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
1011 | "dependencies": {
1012 | "semver": "^6.0.0"
1013 | },
1014 | "engines": {
1015 | "node": ">=8"
1016 | }
1017 | },
1018 | "node_modules/make-dir/node_modules/semver": {
1019 | "version": "6.3.0",
1020 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1021 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1022 | "bin": {
1023 | "semver": "bin/semver.js"
1024 | }
1025 | },
1026 | "node_modules/manage-path": {
1027 | "version": "2.0.0",
1028 | "resolved": "https://registry.npmjs.org/manage-path/-/manage-path-2.0.0.tgz",
1029 | "integrity": "sha1-9M+EV7km7u4qg7FzUBQUvHbrlZc="
1030 | },
1031 | "node_modules/memoize-one": {
1032 | "version": "5.1.1",
1033 | "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz",
1034 | "integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA=="
1035 | },
1036 | "node_modules/memory-stream": {
1037 | "version": "0.0.3",
1038 | "resolved": "https://registry.npmjs.org/memory-stream/-/memory-stream-0.0.3.tgz",
1039 | "integrity": "sha1-6+jdHDuLw4wOeUHp3dWuvmtN6D8=",
1040 | "dependencies": {
1041 | "readable-stream": "~1.0.26-2"
1042 | }
1043 | },
1044 | "node_modules/mime-db": {
1045 | "version": "1.46.0",
1046 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz",
1047 | "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==",
1048 | "engines": {
1049 | "node": ">= 0.6"
1050 | }
1051 | },
1052 | "node_modules/mime-types": {
1053 | "version": "2.1.29",
1054 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz",
1055 | "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==",
1056 | "dependencies": {
1057 | "mime-db": "1.46.0"
1058 | },
1059 | "engines": {
1060 | "node": ">= 0.6"
1061 | }
1062 | },
1063 | "node_modules/minimatch": {
1064 | "version": "3.0.4",
1065 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1066 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1067 | "dependencies": {
1068 | "brace-expansion": "^1.1.7"
1069 | },
1070 | "engines": {
1071 | "node": "*"
1072 | }
1073 | },
1074 | "node_modules/minimist": {
1075 | "version": "1.2.5",
1076 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
1077 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
1078 | },
1079 | "node_modules/minipass": {
1080 | "version": "3.1.3",
1081 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz",
1082 | "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==",
1083 | "dependencies": {
1084 | "yallist": "^4.0.0"
1085 | },
1086 | "engines": {
1087 | "node": ">=8"
1088 | }
1089 | },
1090 | "node_modules/minizlib": {
1091 | "version": "2.1.2",
1092 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
1093 | "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
1094 | "dependencies": {
1095 | "minipass": "^3.0.0",
1096 | "yallist": "^4.0.0"
1097 | },
1098 | "engines": {
1099 | "node": ">= 8"
1100 | }
1101 | },
1102 | "node_modules/mkdirp": {
1103 | "version": "1.0.4",
1104 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
1105 | "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
1106 | "bin": {
1107 | "mkdirp": "bin/cmd.js"
1108 | },
1109 | "engines": {
1110 | "node": ">=10"
1111 | }
1112 | },
1113 | "node_modules/ms": {
1114 | "version": "2.1.2",
1115 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1116 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1117 | },
1118 | "node_modules/node-addon-api": {
1119 | "version": "3.1.0",
1120 | "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz",
1121 | "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw=="
1122 | },
1123 | "node_modules/node-fetch": {
1124 | "version": "2.6.1",
1125 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
1126 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
1127 | "engines": {
1128 | "node": "4.x || >=6.0.0"
1129 | }
1130 | },
1131 | "node_modules/npmlog": {
1132 | "version": "1.2.1",
1133 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz",
1134 | "integrity": "sha1-KOe+YZYJtT960d0wChDWTXFiaLY=",
1135 | "dependencies": {
1136 | "ansi": "~0.3.0",
1137 | "are-we-there-yet": "~1.0.0",
1138 | "gauge": "~1.2.0"
1139 | }
1140 | },
1141 | "node_modules/number-is-nan": {
1142 | "version": "1.0.1",
1143 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
1144 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
1145 | "engines": {
1146 | "node": ">=0.10.0"
1147 | }
1148 | },
1149 | "node_modules/oauth-sign": {
1150 | "version": "0.9.0",
1151 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
1152 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
1153 | "engines": {
1154 | "node": "*"
1155 | }
1156 | },
1157 | "node_modules/once": {
1158 | "version": "1.4.0",
1159 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1160 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1161 | "dependencies": {
1162 | "wrappy": "1"
1163 | }
1164 | },
1165 | "node_modules/os-locale": {
1166 | "version": "1.4.0",
1167 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
1168 | "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
1169 | "dependencies": {
1170 | "lcid": "^1.0.0"
1171 | },
1172 | "engines": {
1173 | "node": ">=0.10.0"
1174 | }
1175 | },
1176 | "node_modules/path-is-absolute": {
1177 | "version": "1.0.1",
1178 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1179 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1180 | "engines": {
1181 | "node": ">=0.10.0"
1182 | }
1183 | },
1184 | "node_modules/path-key": {
1185 | "version": "3.1.1",
1186 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
1187 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
1188 | "engines": {
1189 | "node": ">=8"
1190 | }
1191 | },
1192 | "node_modules/performance-now": {
1193 | "version": "2.1.0",
1194 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
1195 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
1196 | },
1197 | "node_modules/plist": {
1198 | "version": "3.0.1",
1199 | "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz",
1200 | "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==",
1201 | "dev": true,
1202 | "dependencies": {
1203 | "base64-js": "^1.2.3",
1204 | "xmlbuilder": "^9.0.7",
1205 | "xmldom": "0.1.x"
1206 | },
1207 | "engines": {
1208 | "node": ">=6"
1209 | }
1210 | },
1211 | "node_modules/postcss": {
1212 | "version": "7.0.35",
1213 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
1214 | "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
1215 | "dependencies": {
1216 | "chalk": "^2.4.2",
1217 | "source-map": "^0.6.1",
1218 | "supports-color": "^6.1.0"
1219 | },
1220 | "engines": {
1221 | "node": ">=6.0.0"
1222 | }
1223 | },
1224 | "node_modules/postcss-nodegui-autoprefixer": {
1225 | "version": "0.0.7",
1226 | "resolved": "https://registry.npmjs.org/postcss-nodegui-autoprefixer/-/postcss-nodegui-autoprefixer-0.0.7.tgz",
1227 | "integrity": "sha512-cPNAIz9siY+ssc3ecdPaeflfdc2HRS6tgQGu59YKLiiaZT3iMw578l1LTFfmEnJtv1RvNEQUNn/YjHyySXla2Q==",
1228 | "dependencies": {
1229 | "postcss": "^7.0.17"
1230 | }
1231 | },
1232 | "node_modules/process-nextick-args": {
1233 | "version": "2.0.1",
1234 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
1235 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
1236 | },
1237 | "node_modules/progress": {
1238 | "version": "2.0.3",
1239 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
1240 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
1241 | "engines": {
1242 | "node": ">=0.4.0"
1243 | }
1244 | },
1245 | "node_modules/psl": {
1246 | "version": "1.8.0",
1247 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
1248 | "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
1249 | },
1250 | "node_modules/punycode": {
1251 | "version": "2.1.1",
1252 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1253 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
1254 | "engines": {
1255 | "node": ">=6"
1256 | }
1257 | },
1258 | "node_modules/qs": {
1259 | "version": "6.5.2",
1260 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
1261 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
1262 | "engines": {
1263 | "node": ">=0.6"
1264 | }
1265 | },
1266 | "node_modules/rc": {
1267 | "version": "1.2.8",
1268 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
1269 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
1270 | "dependencies": {
1271 | "deep-extend": "^0.6.0",
1272 | "ini": "~1.3.0",
1273 | "minimist": "^1.2.0",
1274 | "strip-json-comments": "~2.0.1"
1275 | },
1276 | "bin": {
1277 | "rc": "cli.js"
1278 | }
1279 | },
1280 | "node_modules/readable-stream": {
1281 | "version": "1.0.34",
1282 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
1283 | "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
1284 | "dependencies": {
1285 | "core-util-is": "~1.0.0",
1286 | "inherits": "~2.0.1",
1287 | "isarray": "0.0.1",
1288 | "string_decoder": "~0.10.x"
1289 | }
1290 | },
1291 | "node_modules/request": {
1292 | "version": "2.88.2",
1293 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
1294 | "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
1295 | "dependencies": {
1296 | "aws-sign2": "~0.7.0",
1297 | "aws4": "^1.8.0",
1298 | "caseless": "~0.12.0",
1299 | "combined-stream": "~1.0.6",
1300 | "extend": "~3.0.2",
1301 | "forever-agent": "~0.6.1",
1302 | "form-data": "~2.3.2",
1303 | "har-validator": "~5.1.3",
1304 | "http-signature": "~1.2.0",
1305 | "is-typedarray": "~1.0.0",
1306 | "isstream": "~0.1.2",
1307 | "json-stringify-safe": "~5.0.1",
1308 | "mime-types": "~2.1.19",
1309 | "oauth-sign": "~0.9.0",
1310 | "performance-now": "^2.1.0",
1311 | "qs": "~6.5.2",
1312 | "safe-buffer": "^5.1.2",
1313 | "tough-cookie": "~2.5.0",
1314 | "tunnel-agent": "^0.6.0",
1315 | "uuid": "^3.3.2"
1316 | },
1317 | "engines": {
1318 | "node": ">= 6"
1319 | }
1320 | },
1321 | "node_modules/retry": {
1322 | "version": "0.12.0",
1323 | "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
1324 | "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
1325 | "engines": {
1326 | "node": ">= 4"
1327 | }
1328 | },
1329 | "node_modules/rimraf": {
1330 | "version": "2.7.1",
1331 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
1332 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
1333 | "dependencies": {
1334 | "glob": "^7.1.3"
1335 | },
1336 | "bin": {
1337 | "rimraf": "bin.js"
1338 | }
1339 | },
1340 | "node_modules/safe-buffer": {
1341 | "version": "5.2.1",
1342 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1343 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
1344 | },
1345 | "node_modules/safer-buffer": {
1346 | "version": "2.1.2",
1347 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1348 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1349 | },
1350 | "node_modules/semver": {
1351 | "version": "5.7.1",
1352 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1353 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
1354 | "bin": {
1355 | "semver": "bin/semver"
1356 | }
1357 | },
1358 | "node_modules/setimmediate": {
1359 | "version": "1.0.5",
1360 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
1361 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
1362 | },
1363 | "node_modules/shebang-command": {
1364 | "version": "2.0.0",
1365 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
1366 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
1367 | "dependencies": {
1368 | "shebang-regex": "^3.0.0"
1369 | },
1370 | "engines": {
1371 | "node": ">=8"
1372 | }
1373 | },
1374 | "node_modules/shebang-regex": {
1375 | "version": "3.0.0",
1376 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
1377 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
1378 | "engines": {
1379 | "node": ">=8"
1380 | }
1381 | },
1382 | "node_modules/source-map": {
1383 | "version": "0.6.1",
1384 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1385 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1386 | "engines": {
1387 | "node": ">=0.10.0"
1388 | }
1389 | },
1390 | "node_modules/splitargs": {
1391 | "version": "0.0.7",
1392 | "resolved": "https://registry.npmjs.org/splitargs/-/splitargs-0.0.7.tgz",
1393 | "integrity": "sha1-/p965lc3GzOxDLgNoUPPgknPazs="
1394 | },
1395 | "node_modules/sshpk": {
1396 | "version": "1.16.1",
1397 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
1398 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
1399 | "dependencies": {
1400 | "asn1": "~0.2.3",
1401 | "assert-plus": "^1.0.0",
1402 | "bcrypt-pbkdf": "^1.0.0",
1403 | "dashdash": "^1.12.0",
1404 | "ecc-jsbn": "~0.1.1",
1405 | "getpass": "^0.1.1",
1406 | "jsbn": "~0.1.0",
1407 | "safer-buffer": "^2.0.2",
1408 | "tweetnacl": "~0.14.0"
1409 | },
1410 | "bin": {
1411 | "sshpk-conv": "bin/sshpk-conv",
1412 | "sshpk-sign": "bin/sshpk-sign",
1413 | "sshpk-verify": "bin/sshpk-verify"
1414 | },
1415 | "engines": {
1416 | "node": ">=0.10.0"
1417 | }
1418 | },
1419 | "node_modules/string_decoder": {
1420 | "version": "0.10.31",
1421 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
1422 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
1423 | },
1424 | "node_modules/string-width": {
1425 | "version": "1.0.2",
1426 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
1427 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
1428 | "dependencies": {
1429 | "code-point-at": "^1.0.0",
1430 | "is-fullwidth-code-point": "^1.0.0",
1431 | "strip-ansi": "^3.0.0"
1432 | },
1433 | "engines": {
1434 | "node": ">=0.10.0"
1435 | }
1436 | },
1437 | "node_modules/strip-ansi": {
1438 | "version": "3.0.1",
1439 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
1440 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
1441 | "dependencies": {
1442 | "ansi-regex": "^2.0.0"
1443 | },
1444 | "engines": {
1445 | "node": ">=0.10.0"
1446 | }
1447 | },
1448 | "node_modules/strip-json-comments": {
1449 | "version": "2.0.1",
1450 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
1451 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
1452 | "engines": {
1453 | "node": ">=0.10.0"
1454 | }
1455 | },
1456 | "node_modules/supports-color": {
1457 | "version": "6.1.0",
1458 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
1459 | "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
1460 | "dependencies": {
1461 | "has-flag": "^3.0.0"
1462 | },
1463 | "engines": {
1464 | "node": ">=6"
1465 | }
1466 | },
1467 | "node_modules/tar": {
1468 | "version": "6.1.0",
1469 | "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz",
1470 | "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==",
1471 | "dependencies": {
1472 | "chownr": "^2.0.0",
1473 | "fs-minipass": "^2.0.0",
1474 | "minipass": "^3.0.0",
1475 | "minizlib": "^2.1.1",
1476 | "mkdirp": "^1.0.3",
1477 | "yallist": "^4.0.0"
1478 | },
1479 | "engines": {
1480 | "node": ">= 10"
1481 | }
1482 | },
1483 | "node_modules/tough-cookie": {
1484 | "version": "2.5.0",
1485 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
1486 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
1487 | "dependencies": {
1488 | "psl": "^1.1.28",
1489 | "punycode": "^2.1.1"
1490 | },
1491 | "engines": {
1492 | "node": ">=0.8"
1493 | }
1494 | },
1495 | "node_modules/traverse": {
1496 | "version": "0.3.9",
1497 | "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
1498 | "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk="
1499 | },
1500 | "node_modules/tunnel-agent": {
1501 | "version": "0.6.0",
1502 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
1503 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
1504 | "dependencies": {
1505 | "safe-buffer": "^5.0.1"
1506 | },
1507 | "engines": {
1508 | "node": "*"
1509 | }
1510 | },
1511 | "node_modules/tweetnacl": {
1512 | "version": "0.14.5",
1513 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
1514 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
1515 | },
1516 | "node_modules/universalify": {
1517 | "version": "0.1.2",
1518 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
1519 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
1520 | "engines": {
1521 | "node": ">= 4.0.0"
1522 | }
1523 | },
1524 | "node_modules/unzipper": {
1525 | "version": "0.8.14",
1526 | "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.8.14.tgz",
1527 | "integrity": "sha512-8rFtE7EP5ssOwGpN2dt1Q4njl0N1hUXJ7sSPz0leU2hRdq6+pra57z4YPBlVqm40vcgv6ooKZEAx48fMTv9x4w==",
1528 | "dependencies": {
1529 | "big-integer": "^1.6.17",
1530 | "binary": "~0.3.0",
1531 | "bluebird": "~3.4.1",
1532 | "buffer-indexof-polyfill": "~1.0.0",
1533 | "duplexer2": "~0.1.4",
1534 | "fstream": "~1.0.10",
1535 | "listenercount": "~1.0.1",
1536 | "readable-stream": "~2.1.5",
1537 | "setimmediate": "~1.0.4"
1538 | }
1539 | },
1540 | "node_modules/unzipper/node_modules/isarray": {
1541 | "version": "1.0.0",
1542 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1543 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
1544 | },
1545 | "node_modules/unzipper/node_modules/process-nextick-args": {
1546 | "version": "1.0.7",
1547 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
1548 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
1549 | },
1550 | "node_modules/unzipper/node_modules/readable-stream": {
1551 | "version": "2.1.5",
1552 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz",
1553 | "integrity": "sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA=",
1554 | "dependencies": {
1555 | "buffer-shims": "^1.0.0",
1556 | "core-util-is": "~1.0.0",
1557 | "inherits": "~2.0.1",
1558 | "isarray": "~1.0.0",
1559 | "process-nextick-args": "~1.0.6",
1560 | "string_decoder": "~0.10.x",
1561 | "util-deprecate": "~1.0.1"
1562 | }
1563 | },
1564 | "node_modules/uri-js": {
1565 | "version": "4.4.1",
1566 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
1567 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
1568 | "dependencies": {
1569 | "punycode": "^2.1.0"
1570 | }
1571 | },
1572 | "node_modules/url-join": {
1573 | "version": "0.0.1",
1574 | "resolved": "https://registry.npmjs.org/url-join/-/url-join-0.0.1.tgz",
1575 | "integrity": "sha1-HbSK1CLTQCRpqH99l73r/k+x48g="
1576 | },
1577 | "node_modules/util-deprecate": {
1578 | "version": "1.0.2",
1579 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1580 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
1581 | },
1582 | "node_modules/uuid": {
1583 | "version": "3.4.0",
1584 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
1585 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
1586 | "bin": {
1587 | "uuid": "bin/uuid"
1588 | }
1589 | },
1590 | "node_modules/verror": {
1591 | "version": "1.10.0",
1592 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
1593 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
1594 | "engines": [
1595 | "node >=0.6.0"
1596 | ],
1597 | "dependencies": {
1598 | "assert-plus": "^1.0.0",
1599 | "core-util-is": "1.0.2",
1600 | "extsprintf": "^1.2.0"
1601 | }
1602 | },
1603 | "node_modules/which": {
1604 | "version": "1.3.1",
1605 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
1606 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
1607 | "dependencies": {
1608 | "isexe": "^2.0.0"
1609 | },
1610 | "bin": {
1611 | "which": "bin/which"
1612 | }
1613 | },
1614 | "node_modules/window-size": {
1615 | "version": "0.1.4",
1616 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
1617 | "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=",
1618 | "bin": {
1619 | "window-size": "cli.js"
1620 | },
1621 | "engines": {
1622 | "node": ">= 0.10.0"
1623 | }
1624 | },
1625 | "node_modules/wrap-ansi": {
1626 | "version": "2.1.0",
1627 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
1628 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
1629 | "dependencies": {
1630 | "string-width": "^1.0.1",
1631 | "strip-ansi": "^3.0.1"
1632 | },
1633 | "engines": {
1634 | "node": ">=0.10.0"
1635 | }
1636 | },
1637 | "node_modules/wrappy": {
1638 | "version": "1.0.2",
1639 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1640 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
1641 | },
1642 | "node_modules/xmlbuilder": {
1643 | "version": "9.0.7",
1644 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
1645 | "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
1646 | "dev": true,
1647 | "engines": {
1648 | "node": ">=4.0"
1649 | }
1650 | },
1651 | "node_modules/xmldom": {
1652 | "version": "0.1.31",
1653 | "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz",
1654 | "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==",
1655 | "dev": true,
1656 | "engines": {
1657 | "node": ">=0.1"
1658 | }
1659 | },
1660 | "node_modules/y18n": {
1661 | "version": "3.2.2",
1662 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
1663 | "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
1664 | },
1665 | "node_modules/yallist": {
1666 | "version": "4.0.0",
1667 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
1668 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
1669 | },
1670 | "node_modules/yargs": {
1671 | "version": "3.32.0",
1672 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
1673 | "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
1674 | "dependencies": {
1675 | "camelcase": "^2.0.1",
1676 | "cliui": "^3.0.3",
1677 | "decamelize": "^1.1.1",
1678 | "os-locale": "^1.4.0",
1679 | "string-width": "^1.0.1",
1680 | "window-size": "^0.1.4",
1681 | "y18n": "^3.2.0"
1682 | }
1683 | }
1684 | },
1685 | "dependencies": {
1686 | "@nodegui/artifact-installer": {
1687 | "version": "1.1.0",
1688 | "resolved": "https://registry.npmjs.org/@nodegui/artifact-installer/-/artifact-installer-1.1.0.tgz",
1689 | "integrity": "sha512-x/rIewhjnLhf2b3lAy5ZIPSTS39LRpwMTKeEg6sn4RwvWwyNmreGzpvGi6Gkbl6FUpftn70nfOBOpaeO3hO8PQ==",
1690 | "requires": {
1691 | "7zip-min": "^1.1.1",
1692 | "env-paths": "^2.2.0",
1693 | "make-dir": "^3.0.0",
1694 | "node-fetch": "^2.6.0",
1695 | "progress": "^2.0.3"
1696 | }
1697 | },
1698 | "@nodegui/nodegui": {
1699 | "version": "0.30.2",
1700 | "resolved": "https://registry.npmjs.org/@nodegui/nodegui/-/nodegui-0.30.2.tgz",
1701 | "integrity": "sha512-UhUCH6bqaaeMoRFfQBMc0mEozwtF4slV3agwUHkEw9zuLcM+1JZewKIiaKnSHMtYdrbgkIohTDsYxlwHgAXv+A==",
1702 | "requires": {
1703 | "@nodegui/artifact-installer": "^1.1.0",
1704 | "@nodegui/qode": "^2.1.0",
1705 | "cmake-js": "^6.1.0",
1706 | "cross-env": "^7.0.3",
1707 | "cuid": "^2.1.6",
1708 | "manage-path": "^2.0.0",
1709 | "memoize-one": "^5.1.1",
1710 | "node-addon-api": "^3.1.0",
1711 | "postcss-nodegui-autoprefixer": "0.0.7"
1712 | }
1713 | },
1714 | "@nodegui/packer": {
1715 | "version": "1.4.1",
1716 | "resolved": "https://registry.npmjs.org/@nodegui/packer/-/packer-1.4.1.tgz",
1717 | "integrity": "sha512-jmw2uuaiXZIW+Vxx4WpNFxkjzcqKRAT/VBf7jKbK4IIr1OW+G0ufYA4K5bGGlGG/4iE1oOLCLHbIRmSTYkfslw==",
1718 | "dev": true,
1719 | "requires": {
1720 | "@nodegui/artifact-installer": "^1.0.0",
1721 | "commander": "^4.0.1",
1722 | "fs-extra": "^8.1.0",
1723 | "plist": "^3.0.1"
1724 | },
1725 | "dependencies": {
1726 | "fs-extra": {
1727 | "version": "8.1.0",
1728 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
1729 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
1730 | "dev": true,
1731 | "requires": {
1732 | "graceful-fs": "^4.2.0",
1733 | "jsonfile": "^4.0.0",
1734 | "universalify": "^0.1.0"
1735 | }
1736 | }
1737 | }
1738 | },
1739 | "@nodegui/qode": {
1740 | "version": "2.1.0",
1741 | "resolved": "https://registry.npmjs.org/@nodegui/qode/-/qode-2.1.0.tgz",
1742 | "integrity": "sha512-R31K60Vba4yO2Fy3qXXJkt7XMZnitDhuAVaibSGSbcBJbHhJh0+pDQjzZve1+uY7tCHFIY0oRq3tb70o/BrPZQ==",
1743 | "requires": {
1744 | "env-paths": "^2.2.0",
1745 | "make-dir": "^3.0.2",
1746 | "node-fetch": "^2.6.0",
1747 | "progress": "^2.0.3",
1748 | "tar": "^6.0.1"
1749 | }
1750 | },
1751 | "@vercel/fetch-retry": {
1752 | "version": "5.0.3",
1753 | "resolved": "https://registry.npmjs.org/@vercel/fetch-retry/-/fetch-retry-5.0.3.tgz",
1754 | "integrity": "sha512-DIIoBY92r+sQ6iHSf5WjKiYvkdsDIMPWKYATlE0KcUAj2RV6SZK9UWpUzBRKsofXqedOqpVjrI0IE6AWL7JRtg==",
1755 | "requires": {
1756 | "async-retry": "^1.3.1",
1757 | "debug": "^3.1.0"
1758 | },
1759 | "dependencies": {
1760 | "debug": {
1761 | "version": "3.2.7",
1762 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
1763 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
1764 | "requires": {
1765 | "ms": "^2.1.1"
1766 | }
1767 | }
1768 | }
1769 | },
1770 | "7zip-bin": {
1771 | "version": "5.1.0",
1772 | "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.0.tgz",
1773 | "integrity": "sha512-nOZl6SsZFpcKvq7oRxdbBwrhYQ+/iXgWqehnw5meQAeRyP+OzR0CWPE5IDXhQbTVgZxrsgmTk+xs6tVTzqkw+w=="
1774 | },
1775 | "7zip-min": {
1776 | "version": "1.3.0",
1777 | "resolved": "https://registry.npmjs.org/7zip-min/-/7zip-min-1.3.0.tgz",
1778 | "integrity": "sha512-gM156Jr4tF1Kq1RyQFJrNzH71VzrlIfCLZFUkvFX/IFJXYQB6rXgBlCCaDhoz6x8GDeNcfwLeF5gnodXBI0riA==",
1779 | "requires": {
1780 | "7zip-bin": "^5.0.3"
1781 | }
1782 | },
1783 | "ajv": {
1784 | "version": "6.12.6",
1785 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
1786 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
1787 | "requires": {
1788 | "fast-deep-equal": "^3.1.1",
1789 | "fast-json-stable-stringify": "^2.0.0",
1790 | "json-schema-traverse": "^0.4.1",
1791 | "uri-js": "^4.2.2"
1792 | }
1793 | },
1794 | "ansi": {
1795 | "version": "0.3.1",
1796 | "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
1797 | "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE="
1798 | },
1799 | "ansi-regex": {
1800 | "version": "2.1.1",
1801 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
1802 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
1803 | },
1804 | "ansi-styles": {
1805 | "version": "3.2.1",
1806 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1807 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1808 | "requires": {
1809 | "color-convert": "^1.9.0"
1810 | }
1811 | },
1812 | "are-we-there-yet": {
1813 | "version": "1.0.6",
1814 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.6.tgz",
1815 | "integrity": "sha1-otKMkxAqpsyWJFomy5VN4G7FPww=",
1816 | "requires": {
1817 | "delegates": "^1.0.0",
1818 | "readable-stream": "^2.0.0 || ^1.1.13"
1819 | },
1820 | "dependencies": {
1821 | "isarray": {
1822 | "version": "1.0.0",
1823 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1824 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
1825 | },
1826 | "readable-stream": {
1827 | "version": "2.3.7",
1828 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
1829 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
1830 | "requires": {
1831 | "core-util-is": "~1.0.0",
1832 | "inherits": "~2.0.3",
1833 | "isarray": "~1.0.0",
1834 | "process-nextick-args": "~2.0.0",
1835 | "safe-buffer": "~5.1.1",
1836 | "string_decoder": "~1.1.1",
1837 | "util-deprecate": "~1.0.1"
1838 | }
1839 | },
1840 | "safe-buffer": {
1841 | "version": "5.1.2",
1842 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1843 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
1844 | },
1845 | "string_decoder": {
1846 | "version": "1.1.1",
1847 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1848 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1849 | "requires": {
1850 | "safe-buffer": "~5.1.0"
1851 | }
1852 | }
1853 | }
1854 | },
1855 | "asn1": {
1856 | "version": "0.2.4",
1857 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
1858 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
1859 | "requires": {
1860 | "safer-buffer": "~2.1.0"
1861 | }
1862 | },
1863 | "assert-plus": {
1864 | "version": "1.0.0",
1865 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
1866 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
1867 | },
1868 | "async-retry": {
1869 | "version": "1.3.1",
1870 | "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz",
1871 | "integrity": "sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==",
1872 | "requires": {
1873 | "retry": "0.12.0"
1874 | }
1875 | },
1876 | "asynckit": {
1877 | "version": "0.4.0",
1878 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
1879 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
1880 | },
1881 | "aws-sign2": {
1882 | "version": "0.7.0",
1883 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
1884 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
1885 | },
1886 | "aws4": {
1887 | "version": "1.11.0",
1888 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
1889 | "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
1890 | },
1891 | "balanced-match": {
1892 | "version": "1.0.0",
1893 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
1894 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
1895 | },
1896 | "base64-js": {
1897 | "version": "1.5.1",
1898 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
1899 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
1900 | "dev": true
1901 | },
1902 | "bcrypt-pbkdf": {
1903 | "version": "1.0.2",
1904 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
1905 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
1906 | "requires": {
1907 | "tweetnacl": "^0.14.3"
1908 | }
1909 | },
1910 | "big-integer": {
1911 | "version": "1.6.48",
1912 | "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz",
1913 | "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w=="
1914 | },
1915 | "binary": {
1916 | "version": "0.3.0",
1917 | "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
1918 | "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=",
1919 | "requires": {
1920 | "buffers": "~0.1.1",
1921 | "chainsaw": "~0.1.0"
1922 | }
1923 | },
1924 | "bluebird": {
1925 | "version": "3.4.7",
1926 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
1927 | "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM="
1928 | },
1929 | "brace-expansion": {
1930 | "version": "1.1.11",
1931 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1932 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1933 | "requires": {
1934 | "balanced-match": "^1.0.0",
1935 | "concat-map": "0.0.1"
1936 | }
1937 | },
1938 | "buffer-indexof-polyfill": {
1939 | "version": "1.0.2",
1940 | "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
1941 | "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A=="
1942 | },
1943 | "buffer-shims": {
1944 | "version": "1.0.0",
1945 | "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
1946 | "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E="
1947 | },
1948 | "buffers": {
1949 | "version": "0.1.1",
1950 | "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
1951 | "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s="
1952 | },
1953 | "camelcase": {
1954 | "version": "2.1.1",
1955 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
1956 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
1957 | },
1958 | "caseless": {
1959 | "version": "0.12.0",
1960 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
1961 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
1962 | },
1963 | "chainsaw": {
1964 | "version": "0.1.0",
1965 | "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
1966 | "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=",
1967 | "requires": {
1968 | "traverse": ">=0.3.0 <0.4"
1969 | }
1970 | },
1971 | "chalk": {
1972 | "version": "2.4.2",
1973 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
1974 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
1975 | "requires": {
1976 | "ansi-styles": "^3.2.1",
1977 | "escape-string-regexp": "^1.0.5",
1978 | "supports-color": "^5.3.0"
1979 | },
1980 | "dependencies": {
1981 | "supports-color": {
1982 | "version": "5.5.0",
1983 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1984 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1985 | "requires": {
1986 | "has-flag": "^3.0.0"
1987 | }
1988 | }
1989 | }
1990 | },
1991 | "chownr": {
1992 | "version": "2.0.0",
1993 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
1994 | "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
1995 | },
1996 | "cliui": {
1997 | "version": "3.2.0",
1998 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
1999 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
2000 | "requires": {
2001 | "string-width": "^1.0.1",
2002 | "strip-ansi": "^3.0.1",
2003 | "wrap-ansi": "^2.0.0"
2004 | }
2005 | },
2006 | "cmake-js": {
2007 | "version": "6.1.0",
2008 | "resolved": "https://registry.npmjs.org/cmake-js/-/cmake-js-6.1.0.tgz",
2009 | "integrity": "sha512-utmukLQftpgrCpGRCaHnkv4K27HZNNFqmBl4vnvccy0xp4c1erxjFU/Lq4wn5ngAhFZmpwBPQfoKWKThjSBiwg==",
2010 | "requires": {
2011 | "debug": "^4",
2012 | "fs-extra": "^5.0.0",
2013 | "is-iojs": "^1.0.1",
2014 | "lodash": "^4",
2015 | "memory-stream": "0",
2016 | "npmlog": "^1.2.0",
2017 | "rc": "^1.2.7",
2018 | "request": "^2.54.0",
2019 | "semver": "^5.0.3",
2020 | "splitargs": "0",
2021 | "tar": "^4",
2022 | "unzipper": "^0.8.13",
2023 | "url-join": "0",
2024 | "which": "^1.0.9",
2025 | "yargs": "^3.6.0"
2026 | },
2027 | "dependencies": {
2028 | "chownr": {
2029 | "version": "1.1.4",
2030 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
2031 | "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
2032 | },
2033 | "fs-minipass": {
2034 | "version": "1.2.7",
2035 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
2036 | "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
2037 | "requires": {
2038 | "minipass": "^2.6.0"
2039 | }
2040 | },
2041 | "minipass": {
2042 | "version": "2.9.0",
2043 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
2044 | "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
2045 | "requires": {
2046 | "safe-buffer": "^5.1.2",
2047 | "yallist": "^3.0.0"
2048 | }
2049 | },
2050 | "minizlib": {
2051 | "version": "1.3.3",
2052 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
2053 | "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
2054 | "requires": {
2055 | "minipass": "^2.9.0"
2056 | }
2057 | },
2058 | "mkdirp": {
2059 | "version": "0.5.5",
2060 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
2061 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
2062 | "requires": {
2063 | "minimist": "^1.2.5"
2064 | }
2065 | },
2066 | "tar": {
2067 | "version": "4.4.13",
2068 | "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
2069 | "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
2070 | "requires": {
2071 | "chownr": "^1.1.1",
2072 | "fs-minipass": "^1.2.5",
2073 | "minipass": "^2.8.6",
2074 | "minizlib": "^1.2.1",
2075 | "mkdirp": "^0.5.0",
2076 | "safe-buffer": "^5.1.2",
2077 | "yallist": "^3.0.3"
2078 | }
2079 | },
2080 | "yallist": {
2081 | "version": "3.1.1",
2082 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
2083 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
2084 | }
2085 | }
2086 | },
2087 | "code-point-at": {
2088 | "version": "1.1.0",
2089 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
2090 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
2091 | },
2092 | "color-convert": {
2093 | "version": "1.9.3",
2094 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
2095 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
2096 | "requires": {
2097 | "color-name": "1.1.3"
2098 | }
2099 | },
2100 | "color-name": {
2101 | "version": "1.1.3",
2102 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
2103 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
2104 | },
2105 | "combined-stream": {
2106 | "version": "1.0.8",
2107 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
2108 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
2109 | "requires": {
2110 | "delayed-stream": "~1.0.0"
2111 | }
2112 | },
2113 | "commander": {
2114 | "version": "4.1.1",
2115 | "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
2116 | "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
2117 | "dev": true
2118 | },
2119 | "concat-map": {
2120 | "version": "0.0.1",
2121 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
2122 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
2123 | },
2124 | "core-util-is": {
2125 | "version": "1.0.2",
2126 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
2127 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
2128 | },
2129 | "cross-env": {
2130 | "version": "7.0.3",
2131 | "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
2132 | "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
2133 | "requires": {
2134 | "cross-spawn": "^7.0.1"
2135 | }
2136 | },
2137 | "cross-spawn": {
2138 | "version": "7.0.3",
2139 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
2140 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
2141 | "requires": {
2142 | "path-key": "^3.1.0",
2143 | "shebang-command": "^2.0.0",
2144 | "which": "^2.0.1"
2145 | },
2146 | "dependencies": {
2147 | "which": {
2148 | "version": "2.0.2",
2149 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
2150 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
2151 | "requires": {
2152 | "isexe": "^2.0.0"
2153 | }
2154 | }
2155 | }
2156 | },
2157 | "cuid": {
2158 | "version": "2.1.8",
2159 | "resolved": "https://registry.npmjs.org/cuid/-/cuid-2.1.8.tgz",
2160 | "integrity": "sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg=="
2161 | },
2162 | "dashdash": {
2163 | "version": "1.14.1",
2164 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
2165 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
2166 | "requires": {
2167 | "assert-plus": "^1.0.0"
2168 | }
2169 | },
2170 | "debug": {
2171 | "version": "4.3.1",
2172 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
2173 | "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
2174 | "requires": {
2175 | "ms": "2.1.2"
2176 | }
2177 | },
2178 | "decamelize": {
2179 | "version": "1.2.0",
2180 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
2181 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
2182 | },
2183 | "deep-extend": {
2184 | "version": "0.6.0",
2185 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
2186 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
2187 | },
2188 | "delayed-stream": {
2189 | "version": "1.0.0",
2190 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
2191 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
2192 | },
2193 | "delegates": {
2194 | "version": "1.0.0",
2195 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
2196 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
2197 | },
2198 | "duplexer2": {
2199 | "version": "0.1.4",
2200 | "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
2201 | "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
2202 | "requires": {
2203 | "readable-stream": "^2.0.2"
2204 | },
2205 | "dependencies": {
2206 | "isarray": {
2207 | "version": "1.0.0",
2208 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
2209 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
2210 | },
2211 | "readable-stream": {
2212 | "version": "2.3.7",
2213 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
2214 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
2215 | "requires": {
2216 | "core-util-is": "~1.0.0",
2217 | "inherits": "~2.0.3",
2218 | "isarray": "~1.0.0",
2219 | "process-nextick-args": "~2.0.0",
2220 | "safe-buffer": "~5.1.1",
2221 | "string_decoder": "~1.1.1",
2222 | "util-deprecate": "~1.0.1"
2223 | }
2224 | },
2225 | "safe-buffer": {
2226 | "version": "5.1.2",
2227 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2228 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
2229 | },
2230 | "string_decoder": {
2231 | "version": "1.1.1",
2232 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
2233 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2234 | "requires": {
2235 | "safe-buffer": "~5.1.0"
2236 | }
2237 | }
2238 | }
2239 | },
2240 | "ecc-jsbn": {
2241 | "version": "0.1.2",
2242 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
2243 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
2244 | "requires": {
2245 | "jsbn": "~0.1.0",
2246 | "safer-buffer": "^2.1.0"
2247 | }
2248 | },
2249 | "env-paths": {
2250 | "version": "2.2.1",
2251 | "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
2252 | "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="
2253 | },
2254 | "escape-string-regexp": {
2255 | "version": "1.0.5",
2256 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
2257 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
2258 | },
2259 | "extend": {
2260 | "version": "3.0.2",
2261 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
2262 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
2263 | },
2264 | "extsprintf": {
2265 | "version": "1.3.0",
2266 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
2267 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
2268 | },
2269 | "fast-deep-equal": {
2270 | "version": "3.1.3",
2271 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
2272 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
2273 | },
2274 | "fast-json-stable-stringify": {
2275 | "version": "2.1.0",
2276 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
2277 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
2278 | },
2279 | "forever-agent": {
2280 | "version": "0.6.1",
2281 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
2282 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
2283 | },
2284 | "form-data": {
2285 | "version": "2.3.3",
2286 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
2287 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
2288 | "requires": {
2289 | "asynckit": "^0.4.0",
2290 | "combined-stream": "^1.0.6",
2291 | "mime-types": "^2.1.12"
2292 | }
2293 | },
2294 | "fs-extra": {
2295 | "version": "5.0.0",
2296 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz",
2297 | "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==",
2298 | "requires": {
2299 | "graceful-fs": "^4.1.2",
2300 | "jsonfile": "^4.0.0",
2301 | "universalify": "^0.1.0"
2302 | }
2303 | },
2304 | "fs-minipass": {
2305 | "version": "2.1.0",
2306 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
2307 | "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
2308 | "requires": {
2309 | "minipass": "^3.0.0"
2310 | }
2311 | },
2312 | "fs.realpath": {
2313 | "version": "1.0.0",
2314 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2315 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
2316 | },
2317 | "fstream": {
2318 | "version": "1.0.12",
2319 | "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
2320 | "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
2321 | "requires": {
2322 | "graceful-fs": "^4.1.2",
2323 | "inherits": "~2.0.0",
2324 | "mkdirp": ">=0.5 0",
2325 | "rimraf": "2"
2326 | },
2327 | "dependencies": {
2328 | "mkdirp": {
2329 | "version": "0.5.5",
2330 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
2331 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
2332 | "requires": {
2333 | "minimist": "^1.2.5"
2334 | }
2335 | }
2336 | }
2337 | },
2338 | "gauge": {
2339 | "version": "1.2.7",
2340 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz",
2341 | "integrity": "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=",
2342 | "requires": {
2343 | "ansi": "^0.3.0",
2344 | "has-unicode": "^2.0.0",
2345 | "lodash.pad": "^4.1.0",
2346 | "lodash.padend": "^4.1.0",
2347 | "lodash.padstart": "^4.1.0"
2348 | }
2349 | },
2350 | "getpass": {
2351 | "version": "0.1.7",
2352 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
2353 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
2354 | "requires": {
2355 | "assert-plus": "^1.0.0"
2356 | }
2357 | },
2358 | "glob": {
2359 | "version": "7.1.6",
2360 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
2361 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
2362 | "requires": {
2363 | "fs.realpath": "^1.0.0",
2364 | "inflight": "^1.0.4",
2365 | "inherits": "2",
2366 | "minimatch": "^3.0.4",
2367 | "once": "^1.3.0",
2368 | "path-is-absolute": "^1.0.0"
2369 | }
2370 | },
2371 | "graceful-fs": {
2372 | "version": "4.2.6",
2373 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
2374 | "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
2375 | },
2376 | "har-schema": {
2377 | "version": "2.0.0",
2378 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
2379 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
2380 | },
2381 | "har-validator": {
2382 | "version": "5.1.5",
2383 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
2384 | "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
2385 | "requires": {
2386 | "ajv": "^6.12.3",
2387 | "har-schema": "^2.0.0"
2388 | }
2389 | },
2390 | "has-flag": {
2391 | "version": "3.0.0",
2392 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
2393 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
2394 | },
2395 | "has-unicode": {
2396 | "version": "2.0.1",
2397 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
2398 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
2399 | },
2400 | "http-signature": {
2401 | "version": "1.2.0",
2402 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
2403 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
2404 | "requires": {
2405 | "assert-plus": "^1.0.0",
2406 | "jsprim": "^1.2.2",
2407 | "sshpk": "^1.7.0"
2408 | }
2409 | },
2410 | "inflight": {
2411 | "version": "1.0.6",
2412 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2413 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
2414 | "requires": {
2415 | "once": "^1.3.0",
2416 | "wrappy": "1"
2417 | }
2418 | },
2419 | "inherits": {
2420 | "version": "2.0.4",
2421 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
2422 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
2423 | },
2424 | "ini": {
2425 | "version": "1.3.8",
2426 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
2427 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
2428 | },
2429 | "invert-kv": {
2430 | "version": "1.0.0",
2431 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
2432 | "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
2433 | },
2434 | "is-fullwidth-code-point": {
2435 | "version": "1.0.0",
2436 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
2437 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
2438 | "requires": {
2439 | "number-is-nan": "^1.0.0"
2440 | }
2441 | },
2442 | "is-iojs": {
2443 | "version": "1.1.0",
2444 | "resolved": "https://registry.npmjs.org/is-iojs/-/is-iojs-1.1.0.tgz",
2445 | "integrity": "sha1-TBEDO11dlNbqs3dd7cm+fQCDJfE="
2446 | },
2447 | "is-typedarray": {
2448 | "version": "1.0.0",
2449 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
2450 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
2451 | },
2452 | "isarray": {
2453 | "version": "0.0.1",
2454 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
2455 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
2456 | },
2457 | "isexe": {
2458 | "version": "2.0.0",
2459 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2460 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
2461 | },
2462 | "isstream": {
2463 | "version": "0.1.2",
2464 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
2465 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
2466 | },
2467 | "jsbn": {
2468 | "version": "0.1.1",
2469 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
2470 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
2471 | },
2472 | "json-schema": {
2473 | "version": "0.2.3",
2474 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
2475 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
2476 | },
2477 | "json-schema-traverse": {
2478 | "version": "0.4.1",
2479 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
2480 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
2481 | },
2482 | "json-stringify-safe": {
2483 | "version": "5.0.1",
2484 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
2485 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
2486 | },
2487 | "jsonfile": {
2488 | "version": "4.0.0",
2489 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
2490 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
2491 | "requires": {
2492 | "graceful-fs": "^4.1.6"
2493 | }
2494 | },
2495 | "jsprim": {
2496 | "version": "1.4.1",
2497 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
2498 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
2499 | "requires": {
2500 | "assert-plus": "1.0.0",
2501 | "extsprintf": "1.3.0",
2502 | "json-schema": "0.2.3",
2503 | "verror": "1.10.0"
2504 | }
2505 | },
2506 | "lcid": {
2507 | "version": "1.0.0",
2508 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
2509 | "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
2510 | "requires": {
2511 | "invert-kv": "^1.0.0"
2512 | }
2513 | },
2514 | "listenercount": {
2515 | "version": "1.0.1",
2516 | "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
2517 | "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc="
2518 | },
2519 | "lodash": {
2520 | "version": "4.17.21",
2521 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
2522 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
2523 | },
2524 | "lodash.pad": {
2525 | "version": "4.5.1",
2526 | "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz",
2527 | "integrity": "sha1-QzCUmoM6fI2iLMIPaibE1Z3runA="
2528 | },
2529 | "lodash.padend": {
2530 | "version": "4.6.1",
2531 | "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
2532 | "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4="
2533 | },
2534 | "lodash.padstart": {
2535 | "version": "4.6.1",
2536 | "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz",
2537 | "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs="
2538 | },
2539 | "make-dir": {
2540 | "version": "3.1.0",
2541 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
2542 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
2543 | "requires": {
2544 | "semver": "^6.0.0"
2545 | },
2546 | "dependencies": {
2547 | "semver": {
2548 | "version": "6.3.0",
2549 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
2550 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
2551 | }
2552 | }
2553 | },
2554 | "manage-path": {
2555 | "version": "2.0.0",
2556 | "resolved": "https://registry.npmjs.org/manage-path/-/manage-path-2.0.0.tgz",
2557 | "integrity": "sha1-9M+EV7km7u4qg7FzUBQUvHbrlZc="
2558 | },
2559 | "memoize-one": {
2560 | "version": "5.1.1",
2561 | "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz",
2562 | "integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA=="
2563 | },
2564 | "memory-stream": {
2565 | "version": "0.0.3",
2566 | "resolved": "https://registry.npmjs.org/memory-stream/-/memory-stream-0.0.3.tgz",
2567 | "integrity": "sha1-6+jdHDuLw4wOeUHp3dWuvmtN6D8=",
2568 | "requires": {
2569 | "readable-stream": "~1.0.26-2"
2570 | }
2571 | },
2572 | "mime-db": {
2573 | "version": "1.46.0",
2574 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz",
2575 | "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ=="
2576 | },
2577 | "mime-types": {
2578 | "version": "2.1.29",
2579 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz",
2580 | "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==",
2581 | "requires": {
2582 | "mime-db": "1.46.0"
2583 | }
2584 | },
2585 | "minimatch": {
2586 | "version": "3.0.4",
2587 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2588 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
2589 | "requires": {
2590 | "brace-expansion": "^1.1.7"
2591 | }
2592 | },
2593 | "minimist": {
2594 | "version": "1.2.5",
2595 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
2596 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
2597 | },
2598 | "minipass": {
2599 | "version": "3.1.3",
2600 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz",
2601 | "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==",
2602 | "requires": {
2603 | "yallist": "^4.0.0"
2604 | }
2605 | },
2606 | "minizlib": {
2607 | "version": "2.1.2",
2608 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
2609 | "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
2610 | "requires": {
2611 | "minipass": "^3.0.0",
2612 | "yallist": "^4.0.0"
2613 | }
2614 | },
2615 | "mkdirp": {
2616 | "version": "1.0.4",
2617 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
2618 | "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
2619 | },
2620 | "ms": {
2621 | "version": "2.1.2",
2622 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2623 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
2624 | },
2625 | "node-addon-api": {
2626 | "version": "3.1.0",
2627 | "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz",
2628 | "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw=="
2629 | },
2630 | "node-fetch": {
2631 | "version": "2.6.1",
2632 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
2633 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
2634 | },
2635 | "npmlog": {
2636 | "version": "1.2.1",
2637 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz",
2638 | "integrity": "sha1-KOe+YZYJtT960d0wChDWTXFiaLY=",
2639 | "requires": {
2640 | "ansi": "~0.3.0",
2641 | "are-we-there-yet": "~1.0.0",
2642 | "gauge": "~1.2.0"
2643 | }
2644 | },
2645 | "number-is-nan": {
2646 | "version": "1.0.1",
2647 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
2648 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
2649 | },
2650 | "oauth-sign": {
2651 | "version": "0.9.0",
2652 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
2653 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
2654 | },
2655 | "once": {
2656 | "version": "1.4.0",
2657 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2658 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
2659 | "requires": {
2660 | "wrappy": "1"
2661 | }
2662 | },
2663 | "os-locale": {
2664 | "version": "1.4.0",
2665 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
2666 | "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
2667 | "requires": {
2668 | "lcid": "^1.0.0"
2669 | }
2670 | },
2671 | "path-is-absolute": {
2672 | "version": "1.0.1",
2673 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2674 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
2675 | },
2676 | "path-key": {
2677 | "version": "3.1.1",
2678 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
2679 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
2680 | },
2681 | "performance-now": {
2682 | "version": "2.1.0",
2683 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
2684 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
2685 | },
2686 | "plist": {
2687 | "version": "3.0.1",
2688 | "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz",
2689 | "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==",
2690 | "dev": true,
2691 | "requires": {
2692 | "base64-js": "^1.2.3",
2693 | "xmlbuilder": "^9.0.7",
2694 | "xmldom": "0.1.x"
2695 | }
2696 | },
2697 | "postcss": {
2698 | "version": "7.0.35",
2699 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
2700 | "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
2701 | "requires": {
2702 | "chalk": "^2.4.2",
2703 | "source-map": "^0.6.1",
2704 | "supports-color": "^6.1.0"
2705 | }
2706 | },
2707 | "postcss-nodegui-autoprefixer": {
2708 | "version": "0.0.7",
2709 | "resolved": "https://registry.npmjs.org/postcss-nodegui-autoprefixer/-/postcss-nodegui-autoprefixer-0.0.7.tgz",
2710 | "integrity": "sha512-cPNAIz9siY+ssc3ecdPaeflfdc2HRS6tgQGu59YKLiiaZT3iMw578l1LTFfmEnJtv1RvNEQUNn/YjHyySXla2Q==",
2711 | "requires": {
2712 | "postcss": "^7.0.17"
2713 | }
2714 | },
2715 | "process-nextick-args": {
2716 | "version": "2.0.1",
2717 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
2718 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
2719 | },
2720 | "progress": {
2721 | "version": "2.0.3",
2722 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
2723 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
2724 | },
2725 | "psl": {
2726 | "version": "1.8.0",
2727 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
2728 | "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
2729 | },
2730 | "punycode": {
2731 | "version": "2.1.1",
2732 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
2733 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
2734 | },
2735 | "qs": {
2736 | "version": "6.5.2",
2737 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
2738 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
2739 | },
2740 | "rc": {
2741 | "version": "1.2.8",
2742 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
2743 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
2744 | "requires": {
2745 | "deep-extend": "^0.6.0",
2746 | "ini": "~1.3.0",
2747 | "minimist": "^1.2.0",
2748 | "strip-json-comments": "~2.0.1"
2749 | }
2750 | },
2751 | "readable-stream": {
2752 | "version": "1.0.34",
2753 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
2754 | "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
2755 | "requires": {
2756 | "core-util-is": "~1.0.0",
2757 | "inherits": "~2.0.1",
2758 | "isarray": "0.0.1",
2759 | "string_decoder": "~0.10.x"
2760 | }
2761 | },
2762 | "request": {
2763 | "version": "2.88.2",
2764 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
2765 | "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
2766 | "requires": {
2767 | "aws-sign2": "~0.7.0",
2768 | "aws4": "^1.8.0",
2769 | "caseless": "~0.12.0",
2770 | "combined-stream": "~1.0.6",
2771 | "extend": "~3.0.2",
2772 | "forever-agent": "~0.6.1",
2773 | "form-data": "~2.3.2",
2774 | "har-validator": "~5.1.3",
2775 | "http-signature": "~1.2.0",
2776 | "is-typedarray": "~1.0.0",
2777 | "isstream": "~0.1.2",
2778 | "json-stringify-safe": "~5.0.1",
2779 | "mime-types": "~2.1.19",
2780 | "oauth-sign": "~0.9.0",
2781 | "performance-now": "^2.1.0",
2782 | "qs": "~6.5.2",
2783 | "safe-buffer": "^5.1.2",
2784 | "tough-cookie": "~2.5.0",
2785 | "tunnel-agent": "^0.6.0",
2786 | "uuid": "^3.3.2"
2787 | }
2788 | },
2789 | "retry": {
2790 | "version": "0.12.0",
2791 | "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
2792 | "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs="
2793 | },
2794 | "rimraf": {
2795 | "version": "2.7.1",
2796 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
2797 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
2798 | "requires": {
2799 | "glob": "^7.1.3"
2800 | }
2801 | },
2802 | "safe-buffer": {
2803 | "version": "5.2.1",
2804 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
2805 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
2806 | },
2807 | "safer-buffer": {
2808 | "version": "2.1.2",
2809 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
2810 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
2811 | },
2812 | "semver": {
2813 | "version": "5.7.1",
2814 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
2815 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
2816 | },
2817 | "setimmediate": {
2818 | "version": "1.0.5",
2819 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
2820 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
2821 | },
2822 | "shebang-command": {
2823 | "version": "2.0.0",
2824 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
2825 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
2826 | "requires": {
2827 | "shebang-regex": "^3.0.0"
2828 | }
2829 | },
2830 | "shebang-regex": {
2831 | "version": "3.0.0",
2832 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
2833 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
2834 | },
2835 | "source-map": {
2836 | "version": "0.6.1",
2837 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2838 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
2839 | },
2840 | "splitargs": {
2841 | "version": "0.0.7",
2842 | "resolved": "https://registry.npmjs.org/splitargs/-/splitargs-0.0.7.tgz",
2843 | "integrity": "sha1-/p965lc3GzOxDLgNoUPPgknPazs="
2844 | },
2845 | "sshpk": {
2846 | "version": "1.16.1",
2847 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
2848 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
2849 | "requires": {
2850 | "asn1": "~0.2.3",
2851 | "assert-plus": "^1.0.0",
2852 | "bcrypt-pbkdf": "^1.0.0",
2853 | "dashdash": "^1.12.0",
2854 | "ecc-jsbn": "~0.1.1",
2855 | "getpass": "^0.1.1",
2856 | "jsbn": "~0.1.0",
2857 | "safer-buffer": "^2.0.2",
2858 | "tweetnacl": "~0.14.0"
2859 | }
2860 | },
2861 | "string_decoder": {
2862 | "version": "0.10.31",
2863 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
2864 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
2865 | },
2866 | "string-width": {
2867 | "version": "1.0.2",
2868 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
2869 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
2870 | "requires": {
2871 | "code-point-at": "^1.0.0",
2872 | "is-fullwidth-code-point": "^1.0.0",
2873 | "strip-ansi": "^3.0.0"
2874 | }
2875 | },
2876 | "strip-ansi": {
2877 | "version": "3.0.1",
2878 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
2879 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
2880 | "requires": {
2881 | "ansi-regex": "^2.0.0"
2882 | }
2883 | },
2884 | "strip-json-comments": {
2885 | "version": "2.0.1",
2886 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
2887 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
2888 | },
2889 | "supports-color": {
2890 | "version": "6.1.0",
2891 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
2892 | "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
2893 | "requires": {
2894 | "has-flag": "^3.0.0"
2895 | }
2896 | },
2897 | "tar": {
2898 | "version": "6.1.0",
2899 | "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz",
2900 | "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==",
2901 | "requires": {
2902 | "chownr": "^2.0.0",
2903 | "fs-minipass": "^2.0.0",
2904 | "minipass": "^3.0.0",
2905 | "minizlib": "^2.1.1",
2906 | "mkdirp": "^1.0.3",
2907 | "yallist": "^4.0.0"
2908 | }
2909 | },
2910 | "tough-cookie": {
2911 | "version": "2.5.0",
2912 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
2913 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
2914 | "requires": {
2915 | "psl": "^1.1.28",
2916 | "punycode": "^2.1.1"
2917 | }
2918 | },
2919 | "traverse": {
2920 | "version": "0.3.9",
2921 | "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
2922 | "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk="
2923 | },
2924 | "tunnel-agent": {
2925 | "version": "0.6.0",
2926 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
2927 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
2928 | "requires": {
2929 | "safe-buffer": "^5.0.1"
2930 | }
2931 | },
2932 | "tweetnacl": {
2933 | "version": "0.14.5",
2934 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
2935 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
2936 | },
2937 | "universalify": {
2938 | "version": "0.1.2",
2939 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
2940 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
2941 | },
2942 | "unzipper": {
2943 | "version": "0.8.14",
2944 | "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.8.14.tgz",
2945 | "integrity": "sha512-8rFtE7EP5ssOwGpN2dt1Q4njl0N1hUXJ7sSPz0leU2hRdq6+pra57z4YPBlVqm40vcgv6ooKZEAx48fMTv9x4w==",
2946 | "requires": {
2947 | "big-integer": "^1.6.17",
2948 | "binary": "~0.3.0",
2949 | "bluebird": "~3.4.1",
2950 | "buffer-indexof-polyfill": "~1.0.0",
2951 | "duplexer2": "~0.1.4",
2952 | "fstream": "~1.0.10",
2953 | "listenercount": "~1.0.1",
2954 | "readable-stream": "~2.1.5",
2955 | "setimmediate": "~1.0.4"
2956 | },
2957 | "dependencies": {
2958 | "isarray": {
2959 | "version": "1.0.0",
2960 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
2961 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
2962 | },
2963 | "process-nextick-args": {
2964 | "version": "1.0.7",
2965 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
2966 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
2967 | },
2968 | "readable-stream": {
2969 | "version": "2.1.5",
2970 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz",
2971 | "integrity": "sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA=",
2972 | "requires": {
2973 | "buffer-shims": "^1.0.0",
2974 | "core-util-is": "~1.0.0",
2975 | "inherits": "~2.0.1",
2976 | "isarray": "~1.0.0",
2977 | "process-nextick-args": "~1.0.6",
2978 | "string_decoder": "~0.10.x",
2979 | "util-deprecate": "~1.0.1"
2980 | }
2981 | }
2982 | }
2983 | },
2984 | "uri-js": {
2985 | "version": "4.4.1",
2986 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
2987 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
2988 | "requires": {
2989 | "punycode": "^2.1.0"
2990 | }
2991 | },
2992 | "url-join": {
2993 | "version": "0.0.1",
2994 | "resolved": "https://registry.npmjs.org/url-join/-/url-join-0.0.1.tgz",
2995 | "integrity": "sha1-HbSK1CLTQCRpqH99l73r/k+x48g="
2996 | },
2997 | "util-deprecate": {
2998 | "version": "1.0.2",
2999 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3000 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
3001 | },
3002 | "uuid": {
3003 | "version": "3.4.0",
3004 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
3005 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
3006 | },
3007 | "verror": {
3008 | "version": "1.10.0",
3009 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
3010 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
3011 | "requires": {
3012 | "assert-plus": "^1.0.0",
3013 | "core-util-is": "1.0.2",
3014 | "extsprintf": "^1.2.0"
3015 | }
3016 | },
3017 | "which": {
3018 | "version": "1.3.1",
3019 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
3020 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
3021 | "requires": {
3022 | "isexe": "^2.0.0"
3023 | }
3024 | },
3025 | "window-size": {
3026 | "version": "0.1.4",
3027 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
3028 | "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY="
3029 | },
3030 | "wrap-ansi": {
3031 | "version": "2.1.0",
3032 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
3033 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
3034 | "requires": {
3035 | "string-width": "^1.0.1",
3036 | "strip-ansi": "^3.0.1"
3037 | }
3038 | },
3039 | "wrappy": {
3040 | "version": "1.0.2",
3041 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3042 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
3043 | },
3044 | "xmlbuilder": {
3045 | "version": "9.0.7",
3046 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
3047 | "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
3048 | "dev": true
3049 | },
3050 | "xmldom": {
3051 | "version": "0.1.31",
3052 | "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz",
3053 | "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==",
3054 | "dev": true
3055 | },
3056 | "y18n": {
3057 | "version": "3.2.2",
3058 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
3059 | "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
3060 | },
3061 | "yallist": {
3062 | "version": "4.0.0",
3063 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
3064 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
3065 | },
3066 | "yargs": {
3067 | "version": "3.32.0",
3068 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
3069 | "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
3070 | "requires": {
3071 | "camelcase": "^2.0.1",
3072 | "cliui": "^3.0.3",
3073 | "decamelize": "^1.1.1",
3074 | "os-locale": "^1.4.0",
3075 | "string-width": "^1.0.1",
3076 | "window-size": "^0.1.4",
3077 | "y18n": "^3.2.0"
3078 | }
3079 | }
3080 | }
3081 | }
3082 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "score-fetcher",
3 | "version": "1.0.0",
4 | "description": "fetch user scores and output as json or csv",
5 | "main": "index.js",
6 | "scripts": {
7 | "start": "npx qode ./src/index",
8 | "debug": "npx qode --inspect ./src/index",
9 | "test": "echo \"Error: no test specified\" && exit 1"
10 | },
11 | "author": "LeaPhant",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@nodegui/nodegui": "^0.30.2",
15 | "@vercel/fetch-retry": "^5.0.3",
16 | "node-fetch": "^2.6.1"
17 | },
18 | "devDependencies": {
19 | "@nodegui/packer": "^1.4.1"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs').promises;
2 | const fetch = require('@vercel/fetch-retry')(require('node-fetch'))
3 |
4 | const {
5 | QMainWindow,
6 | QWidget,
7 | FlexLayout,
8 | QDialog,
9 | QLabel,
10 | QLineEdit,
11 | QListWidget,
12 | QListWidgetItem,
13 | QComboBox,
14 | ItemFlag,
15 | CheckState,
16 | QPushButton,
17 | QProgressBar,
18 | QStatusBar,
19 | QFileDialog,
20 | QSpinBox,
21 | FileMode,
22 | EchoMode,
23 | SizeConstraint
24 | } = require('@nodegui/nodegui');
25 |
26 | const config = {
27 | CLIENT_ID: 0,
28 | CLIENT_SECRET: "",
29 | API_KEY: "",
30 | BEATMAP_API_BASE: "https://osu.lea.moe"
31 | };
32 |
33 | const scores = [];
34 |
35 | const columns = [
36 | "Date","Score ID","User ID","Beatmapset ID","Beatmap ID","Ranked State","AR","CS","OD","HP","BPM","Version","Hit Length",
37 | "Star Rating","Mods Array","Mods Enum","Rank","Position","Score","Combo","FC","Accuracy","300","100","50","Miss","PP","Replay"
38 | ];
39 |
40 | const RANKED_STATE = {
41 | '-2': 'graveyard',
42 | '-1': 'WIP',
43 | '0': 'pending',
44 | '1': 'ranked',
45 | "2": 'approved',
46 | '3': 'qualified',
47 | '4': 'loved'
48 | };
49 |
50 | const MODS_ENUM = {
51 | '' : 0,
52 | 'NF' : 1,
53 | 'EZ' : 2,
54 | 'TD' : 4,
55 | 'HD' : 8,
56 | 'HR' : 16,
57 | 'SD' : 32,
58 | 'DT' : 64,
59 | 'RX' : 128,
60 | 'HT' : 256,
61 | 'NC' : 512,
62 | 'FL' : 1024,
63 | 'AT' : 2048,
64 | 'SO' : 4096,
65 | 'AP' : 8192,
66 | 'PF' : 16384,
67 | '4K' : 32768,
68 | '5K' : 65536,
69 | '6K' : 131072,
70 | '7K' : 262144,
71 | '8K' : 524288,
72 | 'FI' : 1048576,
73 | 'RD' : 2097152,
74 | 'LM' : 4194304,
75 | '9K' : 16777216,
76 | '10K' : 33554432,
77 | '1K' : 67108864,
78 | '3K' : 134217728,
79 | '2K' : 268435456,
80 | 'V2' : 536870912,
81 | };
82 |
83 | const modsEnumToArray = number => {
84 | const output = [];
85 |
86 | for (const mod in MODS_ENUM) {
87 | const modValue = MODS_ENUM[mod];
88 |
89 | if ((number & modValue) == modValue) {
90 | output.push(mod);
91 | }
92 | }
93 |
94 | return output;
95 | };
96 |
97 | const modsArrayToEnum = array => {
98 | let output = 0;
99 |
100 | for (const mod of array) {
101 | if (Object.keys(MODS_ENUM).includes(mod)) {
102 | output |= MODS_ENUM[mod];
103 | }
104 | }
105 |
106 | return output;
107 | };
108 |
109 | const accuracy = (count50, count100, count300, countmiss) => {
110 | count50 = Number(count50);
111 | count100 = Number(count100);
112 | count300 = Number(count300);
113 | countmiss = Number(countmiss);
114 |
115 | const acc =
116 | (50 * count50 + 100 * count100 + 300 * count300)
117 | / (300 * count50 + 300 * count100 + 300 * count300 + 300 * countmiss)
118 | * 100;
119 |
120 | return acc;
121 | };
122 |
123 | let TOKEN;
124 | let cancelFetch = false;
125 |
126 | const saveConfig = async () => {
127 | await fs.writeFile('./config.json', JSON.stringify(config, null, 2));
128 | };
129 |
130 | const sleep = ms => {
131 | return new Promise(resolve => setTimeout(resolve, ms));
132 | };
133 |
134 | const apiRequest = async url => {
135 | const requestConfig = {
136 | method: 'get',
137 | headers: {
138 | 'Accept': 'application/json',
139 | 'Content-Type': 'application/json',
140 | 'Authorization': `Bearer ${TOKEN}`
141 | }
142 | };
143 |
144 | let response = await fetch(url, requestConfig);
145 |
146 | let json = await response.json();
147 |
148 | if (json.authentication == 'basic') {
149 | await getOauthToken();
150 | } else {
151 | return json;
152 | }
153 |
154 | requestConfig.headers['Authorization'] = `Bearer ${TOKEN}`;
155 |
156 | response = await fetch(url, requestConfig);
157 |
158 | json = await response.json();
159 |
160 | return json;
161 | };
162 |
163 | const getOauthToken = async () => {
164 | const credentials = {
165 | client_id: config.CLIENT_ID,
166 | client_secret: config.CLIENT_SECRET,
167 | grant_type: 'client_credentials',
168 | scope: 'public'
169 | };
170 |
171 | const response = await fetch('https://osu.ppy.sh/oauth/token', {
172 | method: 'post',
173 | headers: {
174 | 'Accept': 'application/json',
175 | 'Content-Type': 'application/json'
176 | },
177 | body: JSON.stringify(credentials)
178 | });
179 |
180 | const json = await response.json();
181 |
182 | if(json.error != null)
183 | throw json.error;
184 |
185 | TOKEN = json.access_token;
186 | };
187 |
188 | const testApiKey = async () => {
189 | const response = await fetch(`https://osu.ppy.sh/api/get_beatmaps?k=${config.API_KEY}&b=75`);
190 | const json = await response.json();
191 |
192 | if (json.error != null) {
193 | throw json.error;
194 | }
195 | };
196 |
197 | const showApiDetailsDialog = error => {
198 | const dialog = new QDialog();
199 | dialog.setObjectName("dialog");
200 | dialog.setLayout(new FlexLayout());
201 |
202 | const labelInfo = new QLabel();
203 |
204 | labelInfo.setText(`
205 | • Open your osu! profile settings
206 | • Scroll down to OAuth section
207 | • Create a new OAuth application
208 | • Put any desired name, leave Callback URL empty
209 | • Enter returned credentials below
210 | `);
211 |
212 | labelInfo.setObjectName('labelInfo');
213 |
214 | const rowClientID = new QWidget();
215 | rowClientID.setObjectName('rowClientID');
216 | rowClientID.setLayout(new FlexLayout());
217 |
218 | const rowClientSecret = new QWidget();
219 | rowClientSecret.setObjectName('rowClientSecret');
220 | rowClientSecret.setLayout(new FlexLayout());
221 |
222 | const labelClientID = new QLabel();
223 | labelClientID.setObjectName("labelClientID");
224 | labelClientID.setText('Client ID: ');
225 |
226 | const inputClientID = new QLineEdit();
227 | inputClientID.setObjectName("inputClientID");
228 |
229 | if (config.CLIENT_ID > 0) {
230 | inputClientID.setText(config.CLIENT_ID.toString());
231 | }
232 |
233 | rowClientID.layout.addWidget(labelClientID);
234 | rowClientID.layout.addWidget(inputClientID);
235 |
236 | const labelClientSecret = new QLabel();
237 | labelClientSecret.setObjectName("labelClientSecret");
238 | labelClientSecret.setText('Client Secret: ');
239 |
240 | const inputClientSecret = new QLineEdit();
241 | inputClientSecret.setObjectName("inputClientSecret");
242 | inputClientSecret.setEchoMode(EchoMode.Password);
243 |
244 | if (config.CLIENT_SECRET.length > 0) {
245 | inputClientSecret.setText(config.CLIENT_SECRET.toString());
246 | }
247 |
248 | rowClientSecret.layout.addWidget(labelClientSecret);
249 | rowClientSecret.layout.addWidget(inputClientSecret);
250 |
251 | const rowApiKey = new QWidget();
252 | rowApiKey.setObjectName('rowApiKey');
253 | rowApiKey.setLayout(new FlexLayout());
254 |
255 | const labelApiKey = new QLabel();
256 | labelApiKey.setObjectName("labelApiKey");
257 | labelApiKey.setText('API v1 Key: ');
258 |
259 | const inputApiKey = new QLineEdit();
260 | inputApiKey.setObjectName("inputApiKey");
261 | inputApiKey.setEchoMode(EchoMode.Password);
262 |
263 | if (config.API_KEY.length > 0) {
264 | inputApiKey.setText(config.API_KEY.toString());
265 | }
266 |
267 | rowApiKey.layout.addWidget(labelApiKey);
268 | rowApiKey.layout.addWidget(inputApiKey);
269 |
270 | const buttonSave = new QPushButton();
271 | buttonSave.setText('Save');
272 | buttonSave.setObjectName('buttonSave');
273 |
274 | buttonSave.addEventListener('clicked', async () => {
275 | config.CLIENT_ID = Number(inputClientID.text());
276 | config.CLIENT_SECRET = inputClientSecret.text();
277 | config.API_KEY = inputApiKey.text();
278 |
279 | try {
280 | await getOauthToken();
281 | await testApiKey();
282 | await saveConfig();
283 | dialog.close();
284 | } catch(e) {
285 | dialog.close();
286 | showApiDetailsDialog(e);
287 | }
288 | });
289 |
290 | dialog.layout.addWidget(labelInfo);
291 | dialog.layout.addWidget(rowClientID);
292 | dialog.layout.addWidget(rowClientSecret);
293 | dialog.layout.addWidget(rowApiKey);
294 |
295 | if (error) {
296 | const labelErrorMsg = new QLabel();
297 | labelErrorMsg.setObjectName("labelErrorMsg");
298 | labelErrorMsg.setText(error.toString());
299 | dialog.layout.addWidget(labelErrorMsg);
300 | }
301 |
302 | dialog.layout.addWidget(buttonSave);
303 |
304 | dialog.setStyleSheet(`
305 | #dialog {
306 | padding: 10px;
307 | }
308 |
309 | #labelInfo {
310 | margin-bottom: 5px;
311 | }
312 |
313 | #rowClientID, #rowClientSecret, #rowApiKey {
314 | flex-direction: row;
315 | }
316 |
317 | #rowClientSecret {
318 | margin-top: 5px;
319 | }
320 |
321 | #labelClientID, #labelClientSecret, #labelApiKey {
322 | min-width: 80px;
323 | }
324 |
325 | #inputClientID, #inputClientSecret, #inputApiKey {
326 | flex-grow: 1;
327 | }
328 |
329 | #buttonSave {
330 | margin-top: 8px;
331 | }
332 |
333 | #labelErrorMsg {
334 | margin-top: 5px;
335 | color: red;
336 | }
337 | `);
338 |
339 | dialog.layout.setSizeConstraint(SizeConstraint.SetFixedSize);
340 |
341 | dialog.setWindowTitle("osu! API Credentials");
342 | dialog.open();
343 | };
344 |
345 | const rootView = new QWidget();
346 | rootView.setObjectName("rootView");
347 | rootView.setLayout(new FlexLayout());
348 |
349 | const fieldset = new QWidget();
350 | fieldset.setObjectName('fieldset');
351 | fieldset.setLayout(new FlexLayout());
352 |
353 | const usernameRow = new QWidget();
354 | usernameRow.setObjectName('usernameRow');
355 | usernameRow.setLayout(new FlexLayout());
356 |
357 | const labelUsername = new QLabel();
358 | labelUsername.setText("Username: ");
359 | labelUsername.setObjectName("labelUsername");
360 |
361 | const inputUsername = new QLineEdit();
362 | inputUsername.setPlaceholderText("LazyLea");
363 | inputUsername.setObjectName("inputUsername");
364 |
365 | usernameRow.layout.addWidget(labelUsername);
366 | usernameRow.layout.addWidget(inputUsername);
367 |
368 | const requestsRow = new QWidget();
369 | requestsRow.setObjectName('requestsRow');
370 | requestsRow.setLayout(new FlexLayout());
371 |
372 | const labelRequests = new QLabel();
373 | labelRequests.setText("Requests/min: ");
374 | labelRequests.setObjectName("labelRequests");
375 |
376 | const inputRequests = new QSpinBox();
377 | inputRequests.setRange(10, 1000);
378 | inputRequests.setValue(60);
379 | inputRequests.setObjectName("inputRequests");
380 |
381 | requestsRow.layout.addWidget(labelRequests);
382 | requestsRow.layout.addWidget(inputRequests);
383 |
384 | const apiVersionRow = new QWidget();
385 | apiVersionRow.setObjectName('apiVersionRow');
386 | apiVersionRow.setLayout(new FlexLayout());
387 |
388 | const labelApiVersion = new QLabel();
389 | labelApiVersion.setText("API Version: ");
390 | labelApiVersion.setObjectName("labelApiVersion");
391 |
392 | const inputApiVersion = new QComboBox();
393 | inputApiVersion.addItem(undefined, 'v2');
394 | inputApiVersion.addItem(undefined, 'v1');
395 | inputRequests.setObjectName("inputApiVersion");
396 |
397 | apiVersionRow.layout.addWidget(labelApiVersion);
398 | apiVersionRow.layout.addWidget(inputApiVersion);
399 |
400 | const mapsCheckRow = new QWidget();
401 | mapsCheckRow.setObjectName('mapsCheckRow');
402 | mapsCheckRow.setLayout(new FlexLayout());
403 |
404 | const labelMapsCheck = new QLabel();
405 | labelMapsCheck.setText("Maps to check: ");
406 | labelMapsCheck.setObjectName("labelMapsCheck");
407 |
408 | const inputMapsCheck = new QComboBox();
409 | inputMapsCheck.addItem(undefined, 'Played');
410 | inputMapsCheck.addItem(undefined, 'All Ranked & Loved');
411 | inputMapsCheck.addItem(undefined, 'All Ranked');
412 | inputMapsCheck.setObjectName("inputMapsCheck");
413 |
414 | mapsCheckRow.layout.addWidget(labelMapsCheck);
415 | mapsCheckRow.layout.addWidget(inputMapsCheck);
416 |
417 | const buttonsRow = new QWidget();
418 | buttonsRow.setObjectName('buttonsRow');
419 | buttonsRow.setLayout(new FlexLayout());
420 |
421 | const buttonCancel = new QPushButton();
422 | buttonCancel.setText('Cancel');
423 | buttonCancel.setEnabled(false);
424 | buttonCancel.setObjectName('buttonCancel');
425 |
426 | const buttonFetch = new QPushButton();
427 | buttonFetch.setText('Fetch');
428 | buttonFetch.setObjectName('buttonSave');
429 |
430 | buttonsRow.layout.addWidget(buttonCancel);
431 | buttonsRow.layout.addWidget(buttonFetch);
432 |
433 | fieldset.layout.addWidget(usernameRow);
434 | fieldset.layout.addWidget(requestsRow);
435 | fieldset.layout.addWidget(apiVersionRow);
436 | fieldset.layout.addWidget(mapsCheckRow);
437 | fieldset.layout.addWidget(buttonsRow);
438 |
439 | const progress = new QProgressBar();
440 | progress.setMaximum(1);
441 | progress.setValue(0);
442 | progress.setFormat("0 / ? beatmaps");
443 | progress.setObjectName("progress");
444 |
445 | fieldset.layout.addWidget(progress);
446 |
447 | const listExportColumns = new QListWidget();
448 | listExportColumns.setObjectName('listExportColumns');
449 |
450 | for(const column of columns){
451 | const columnItem = new QListWidgetItem();
452 | columnItem.setText(column);
453 | columnItem.setCheckState(CheckState.Checked);
454 | columnItem.setFlags(columnItem.flags() | ItemFlag.ItemIsUserCheckable);
455 |
456 | listExportColumns.addItem(columnItem);
457 | }
458 |
459 | fieldset.layout.addWidget(listExportColumns);
460 |
461 | const exportButtonsRow = new QWidget();
462 | exportButtonsRow.setObjectName('exportButtonsRow');
463 | exportButtonsRow.setLayout(new FlexLayout());
464 |
465 | const buttonExportCsv = new QPushButton();
466 | buttonExportCsv.setText('Export CSV');
467 | buttonExportCsv.setEnabled(false);
468 | buttonExportCsv.setObjectName('buttonExportCsv');
469 |
470 | const buttonExportJson = new QPushButton();
471 | buttonExportJson.setText('Export JSON');
472 | buttonExportJson.setEnabled(false);
473 | buttonExportJson.setObjectName('buttonExportJson');
474 |
475 | exportButtonsRow.layout.addWidget(buttonExportCsv);
476 | exportButtonsRow.layout.addWidget(buttonExportJson);
477 |
478 | fieldset.layout.addWidget(exportButtonsRow);
479 |
480 | rootView.layout.addWidget(fieldset);
481 |
482 | const rootStyleSheet = `
483 | #rootView {
484 | padding: 5px;
485 | flex-direction: column;
486 | }
487 |
488 | #fieldset {
489 | padding: 5px;
490 | flex-direction: column;
491 | flex-grow: 1;
492 | flex-shrink: 1;
493 | }
494 |
495 | #usernameRow, #buttonsRow, #exportButtonsRow, #requestsRow, #apiVersionRow, #mapsCheckRow {
496 | flex-direction: row;
497 | }
498 |
499 | #labelUsername, #labelRequests, #labelApiVersion, #labelMapsCheck {
500 | width: 100px;
501 | }
502 |
503 | #inputUsername, #inputRequests, #inputApiVersion, #inputMapsCheck {
504 | flex-grow: 1;
505 | }
506 |
507 | #mapsCheckRow, #buttonsRow {
508 | margin-bottom: 10px;
509 | }
510 |
511 | #exportButtonsRow {
512 | margin-top: 10px;
513 | }
514 |
515 | #listExportColumns {
516 | margin-top: 5px;
517 | flex-grow: 1;
518 | flex-shrink: 1;
519 | }
520 |
521 | #buttonCancel, #buttonSave, #buttonExportCsv, #buttonExportJson {
522 | flex-grow: 1;
523 | }
524 | `;
525 |
526 | buttonCancel.addEventListener('clicked', async () => {
527 | cancelFetch = true;
528 | });
529 |
530 | buttonFetch.addEventListener('clicked', async () => {
531 | cancelFetch = false;
532 |
533 | buttonFetch.setEnabled(false);
534 | buttonCancel.setEnabled(true);
535 |
536 | progress.setValue(0);
537 |
538 | let user;
539 |
540 | try{
541 | user = await apiRequest(`https://osu.ppy.sh/api/v2/users/${inputUsername.text()}`);
542 | }catch(e){
543 | console.error(e);
544 |
545 | buttonFetch.setEnabled(true);
546 | buttonCancel.setEnabled(false);
547 |
548 | return;
549 | }
550 |
551 | const userId = user.id;
552 |
553 | const beatmapIds = [];
554 | const limit = 50;
555 |
556 | let offset = 0;
557 | let beatmaps, beatmapsError;
558 |
559 | if (inputMapsCheck.currentText() == 'Played') {
560 | do{
561 | if (cancelFetch) {
562 | break;
563 | }
564 |
565 | beatmapsError = null;
566 |
567 | do{
568 | const timeStart = Date.now();
569 |
570 | try{
571 | beatmaps = await apiRequest(`https://osu.ppy.sh/api/v2/users/${userId}/beatmapsets/most_played?limit=${limit}&offset=${offset}`);
572 |
573 | if (beatmaps.error) {
574 | beatmapsError = beatmaps.error;
575 |
576 | console.error(beatmaps.error);
577 | }
578 | }catch(e){
579 | console.error(e);
580 |
581 | beatmapsError = e.toString();
582 | }
583 |
584 | const timeTaken = Date.now() - timeStart;
585 | const sleepTime = Math.max(0, 60000 / inputRequests.value() - timeTaken);
586 |
587 | if (sleepTime > 0) {
588 | await sleep(Math.max(0, 60000 / inputRequests.value() - timeTaken));
589 | }
590 |
591 | await sleep(config.WAIT_TIME);
592 | }while(!Array.isArray(beatmaps) || beatmapsError != null);
593 |
594 | beatmapIds.push(...beatmaps.map(a => a.beatmap_id));
595 |
596 | offset += limit;
597 |
598 | progress.setFormat(`0 / ${beatmapIds.length.toLocaleString()} beatmaps`);
599 | }while(beatmaps.length > 0);
600 | } else if (inputMapsCheck.currentText().startsWith('All Ranked')) {
601 | const response = await fetch(`${config.BEATMAP_API_BASE}/beatmaps`);
602 | const json = await response.json();
603 |
604 | beatmapIds.push(...json.ranked.beatmaps);
605 |
606 | if (inputMapsCheck.currentText().startsWith('All Ranked & Loved')) {
607 | beatmapIds.push(...json.loved.beatmaps);
608 | }
609 | }
610 |
611 | if (!cancelFetch) {
612 | progress.setFormat(`%v / ${beatmapIds.length.toLocaleString()} beatmaps`);
613 | progress.setMaximum(beatmapIds.length);
614 |
615 | buttonExportJson.setEnabled(true);
616 | buttonExportCsv.setEnabled(true);
617 | }
618 |
619 | while (scores.length) {
620 | scores.pop();
621 | }
622 |
623 | let beatmapsProcessed = 0;
624 |
625 | for (const beatmapId of beatmapIds) {
626 | if (cancelFetch) {
627 | break;
628 | }
629 |
630 | let score = {};
631 |
632 | if (inputApiVersion.currentText() == 'v2') {
633 | apiRequest(`https://osu.ppy.sh/api/v2/beatmaps/${beatmapId}/scores/users/${userId}`)
634 | .then(response => {
635 | score = response;
636 |
637 | if (score.error) {
638 | console.error(score.error);
639 | }
640 |
641 | if (score.score != null) {
642 | score.score.enabled_mods = modsArrayToEnum(score.score.mods);
643 | }
644 |
645 | score.apiVersion = 2;
646 |
647 | if (score.score != null) {
648 | scores.push(score);
649 | }
650 | }).catch(e => {
651 | console.error(e);
652 |
653 | score.error = e.toString();
654 | }).finally(() => {
655 | beatmapsProcessed++;
656 |
657 | progress.setFormat(`${beatmapsProcessed.toLocaleString()} / ${beatmapIds.length.toLocaleString()} beatmaps`);
658 | progress.setValue(Math.max(progress.value(), beatmapsProcessed));
659 | });
660 | } else {
661 | Promise.all([
662 | fetch(`https://osu.ppy.sh/api/get_scores?k=${config.API_KEY}&b=${beatmapId}&u=${userId}&limit=1`),
663 | fetch(`${config.BEATMAP_API_BASE}/b/${beatmapId}`)
664 | ]).then(async response => {
665 | try {
666 | const scoreJson = await response[0].json();
667 | const beatmapJson = await response[1].json();
668 |
669 | score.score = scoreJson[0];
670 |
671 | if (Array.isArray(scoreJson) && scoreJson.length > 0) {
672 | score.score.beatmap = beatmapJson.beatmap;
673 | }
674 |
675 | if (score.score != null) {
676 | score.score.mods = modsEnumToArray(Number(score.score.enabled_mods));
677 | }
678 |
679 | score.apiVersion = 1;
680 |
681 | if (score.score != null) {
682 | scores.push(score);
683 | }
684 | } catch(e) {
685 | console.error(e);
686 | }
687 | }).catch(e => {
688 | console.error(e);
689 |
690 | score.error = e.toString();
691 | }).finally(() => {
692 | beatmapsProcessed++;
693 |
694 | progress.setFormat(`${beatmapsProcessed.toLocaleString()} / ${beatmapIds.length.toLocaleString()} beatmaps`);
695 | progress.setValue(Math.max(progress.value(), beatmapsProcessed));
696 | });
697 | }
698 |
699 | if (cancelFetch) {
700 | break;
701 | }
702 |
703 | await sleep(60000 / inputRequests.value());
704 | }
705 |
706 | buttonFetch.setEnabled(true);
707 | buttonCancel.setEnabled(false);
708 | });
709 |
710 | const getColumn = (column, scoreEntry) => {
711 | const { score } = scoreEntry;
712 |
713 | if (scoreEntry.apiVersion == 1) {
714 | switch(column){
715 | case 'Date':
716 | return score.date;
717 | case 'Score ID':
718 | return score.score_id;
719 | case 'User ID':
720 | return score.user_id;
721 | case 'Beatmapset ID':
722 | return score.beatmap.beatmapset_id;
723 | case 'Beatmap ID':
724 | return score.beatmap.beatmap_id;
725 | case 'Ranked State':
726 | return RANKED_STATE[score.beatmap.approved];
727 | case 'AR':
728 | return score.beatmap.ar;
729 | case 'CS':
730 | return score.beatmap.cs;
731 | case 'OD':
732 | return score.beatmap.od;
733 | case 'HP':
734 | return score.beatmap.hp;
735 | case 'BPM':
736 | return score.beatmap.bpm;
737 | case 'Version':
738 | return score.beatmap.version;
739 | case 'Hit Length':
740 | return score.beatmap.hit_length;
741 | case 'Star Rating':
742 | return score.beatmap.star_rating;
743 | case 'Mods Array':
744 | return score.mods.join("");
745 | case 'Mods Enum':
746 | return score.enabled_mods;
747 | case 'Rank':
748 | return score.rank;
749 | case 'Position':
750 | return 0;
751 | case 'Score':
752 | return score.score;
753 | case 'Combo':
754 | return score.maxcombo;
755 | case 'FC':
756 | return score.perfect == "1";
757 | case 'Accuracy':
758 | return `${accuracy(score.count50, score.count100, score.count300, score.countmiss).toFixed(2)}%`;
759 | case '300':
760 | return score.count300;
761 | case '100':
762 | return score.count100;
763 | case '50':
764 | return score.count50;
765 | case 'Miss':
766 | return score.countmiss;
767 | case 'PP':
768 | return score.pp;
769 | case 'Replay':
770 | return score.replay == "1";
771 | default:
772 | return '';
773 | }
774 | } else {
775 | switch(column){
776 | case 'Date':
777 | return score.created_at;
778 | case 'Score ID':
779 | return score.id;
780 | case 'User ID':
781 | return score.user_id;
782 | case 'Beatmapset ID':
783 | return score.beatmap.beatmapset_id;
784 | case 'Beatmap ID':
785 | return score.beatmap.id;
786 | case 'Ranked State':
787 | return score.beatmap.status;
788 | case 'AR':
789 | return score.beatmap.ar;
790 | case 'CS':
791 | return score.beatmap.cs;
792 | case 'OD':
793 | return score.beatmap.accuracy;
794 | case 'HP':
795 | return score.beatmap.drain;
796 | case 'BPM':
797 | return score.beatmap.bpm;
798 | case 'Version':
799 | return score.beatmap.version;
800 | case 'Hit Length':
801 | return score.beatmap.hit_length;
802 | case 'Star Rating':
803 | return score.beatmap.difficulty_rating;
804 | case 'Mods Array':
805 | return score.mods.join("");
806 | case 'Mods Enum':
807 | return score.enabled_mods;
808 | case 'Rank':
809 | return score.rank;
810 | case 'Position':
811 | return scoreEntry.position;
812 | case 'Score':
813 | return score.score;
814 | case 'Combo':
815 | return score.max_combo;
816 | case 'FC':
817 | return score.perfect;
818 | case 'Accuracy':
819 | return `${(score.accuracy * 100).toFixed(2)}%`;
820 | case '300':
821 | return score.statistics.count_300;
822 | case '100':
823 | return score.statistics.count_100;
824 | case '50':
825 | return score.statistics.count_50;
826 | case 'Miss':
827 | return score.statistics.count_miss;
828 | case 'PP':
829 | return score.pp;
830 | case 'Replay':
831 | return score.replay;
832 | default:
833 | return '';
834 | }
835 | }
836 | }
837 |
838 | buttonExportCsv.addEventListener('clicked', async () => {
839 | const fileDialog = new QFileDialog();
840 |
841 | fileDialog.setFileMode(FileMode.AnyFile);
842 | fileDialog.setNameFilter('CSV (*.csv)');
843 | fileDialog.setDefaultSuffix('.csv');
844 | fileDialog.show();
845 |
846 | fileDialog.addEventListener('fileSelected', async () => {
847 | const selectedFiles = fileDialog.selectedFiles();
848 | const outputPath = selectedFiles[0];
849 |
850 | const exportColumns = [];
851 |
852 | for (const item of listExportColumns.items) {
853 | if (item.checkState() > 0) {
854 | exportColumns.push(item.text());
855 | }
856 | }
857 |
858 | let output = exportColumns.join(",");
859 |
860 | for (const scoreEntry of scores) {
861 | output += '\r\n';
862 |
863 | for (const [index, column] of exportColumns.entries()) {
864 | output += getColumn(column, scoreEntry);
865 |
866 | if (index < exportColumns.length - 1) {
867 | output += ',';
868 | }
869 | }
870 | }
871 |
872 | await fs.writeFile(outputPath, output);
873 | });
874 | });
875 |
876 | buttonExportJson.addEventListener('clicked', async () => {
877 | const fileDialog = new QFileDialog();
878 |
879 | fileDialog.setFileMode(FileMode.AnyFile);
880 | fileDialog.setNameFilter('JSON (*.json)');
881 | fileDialog.setDefaultSuffix('.json');
882 | fileDialog.show();
883 |
884 | fileDialog.addEventListener('fileSelected', async () => {
885 | const selectedFiles = fileDialog.selectedFiles();
886 | const outputPath = selectedFiles[0];
887 |
888 | await fs.writeFile(outputPath, JSON.stringify(scores, null, 2));
889 | });
890 | });
891 |
892 | rootView.setStyleSheet(rootStyleSheet);
893 |
894 | const win = new QMainWindow();
895 | win.setWindowTitle("Score Fetcher");
896 | win.setCentralWidget(rootView);
897 | win.setMinimumSize(250, 350);
898 | win.show();
899 |
900 | fs.readFile('./config.json', 'utf8')
901 | .then(configFile => {
902 | Object.assign(config, JSON.parse(configFile));
903 | }).catch(error => {
904 | console.error(error);
905 |
906 | saveConfig().catch(console.error);
907 | }).finally(() => {
908 | testApiKey().then(() => {
909 | getOauthToken().catch(showApiDetailsDialog);
910 | }).catch(showApiDetailsDialog);
911 | });
912 |
913 | global.win = win;
914 |
--------------------------------------------------------------------------------