├── .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 | ![Screenshot](https://i.imgur.com/IzZ1E4b.png) 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 | --------------------------------------------------------------------------------