├── .eslintrc.json ├── .gitignore ├── .prettierrc ├── LICENSE ├── build.mjs ├── package-lock.json ├── package.json ├── readme.MD ├── screenshot.png └── src ├── background ├── fetch-sse.mjs ├── index.mjs └── stream-async-iterable.mjs ├── content-script └── index.mjs ├── github-markdown.css ├── logo.png ├── manifest.json ├── manifest.v2.json └── styles.css /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "es2021": true 5 | }, 6 | "extends": "eslint:recommended", 7 | "overrides": [ 8 | ], 9 | "parserOptions": { 10 | "ecmaVersion": "latest", 11 | "sourceType": "module" 12 | }, 13 | "rules": { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | build/ 3 | background.js 4 | .DS_Store 5 | *.zip 6 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 100, 3 | "semi": false, 4 | "tabWidth": 2, 5 | "singleQuote": true, 6 | "trailingComma": "all", 7 | "bracketSpacing": true, 8 | "overrides": [ 9 | { 10 | "files": ".prettierrc", 11 | "options": { 12 | "parser": "json" 13 | } 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 wong2 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 | -------------------------------------------------------------------------------- /build.mjs: -------------------------------------------------------------------------------- 1 | import archiver from 'archiver' 2 | import esbuild from 'esbuild' 3 | import fs, { promises as fsPromises } from 'fs' 4 | 5 | const outdir = 'build' 6 | 7 | async function deleteOldDir() { 8 | await fsPromises.rm(outdir, { recursive: true, force: true }) 9 | } 10 | 11 | async function runEsbuild() { 12 | await esbuild.build({ 13 | entryPoints: ['src/content-script/index.mjs', 'src/background/index.mjs'], 14 | bundle: true, 15 | outdir: outdir, 16 | }) 17 | } 18 | 19 | async function zipFolder(dir) { 20 | const output = fs.createWriteStream(`${dir}.zip`) 21 | const archive = archiver('zip', { 22 | zlib: { level: 9 }, 23 | }) 24 | archive.pipe(output) 25 | archive.directory(dir, false) 26 | await archive.finalize() 27 | } 28 | 29 | async function copyFiles(entryPoints, targetDir) { 30 | await fsPromises.mkdir(targetDir) 31 | await Promise.all( 32 | entryPoints.map(async (entryPoint) => { 33 | await fsPromises.copyFile(entryPoint.src, `${targetDir}/${entryPoint.dst}`) 34 | }), 35 | ) 36 | } 37 | 38 | async function build() { 39 | await deleteOldDir() 40 | await runEsbuild() 41 | 42 | const commonFiles = [ 43 | { src: 'build/content-script/index.js', dst: 'content-script.js' }, 44 | { src: 'build/background/index.js', dst: 'background.js' }, 45 | { src: 'src/github-markdown.css', dst: 'github-markdown.css' }, 46 | { src: 'src/styles.css', dst: 'styles.css' }, 47 | { src: 'src/logo.png', dst: 'logo.png' }, 48 | ] 49 | 50 | // chromium 51 | await copyFiles( 52 | [...commonFiles, { src: 'src/manifest.json', dst: 'manifest.json' }], 53 | `./${outdir}/chromium`, 54 | ) 55 | 56 | await zipFolder(`./${outdir}/chromium`) 57 | 58 | // firefox 59 | await copyFiles( 60 | [...commonFiles, { src: 'src/manifest.v2.json', dst: 'manifest.json' }], 61 | `./${outdir}/firefox`, 62 | ) 63 | 64 | await zipFolder(`./${outdir}/firefox`) 65 | } 66 | 67 | build() 68 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "chat-gpt-google-extension", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "chat-gpt-google-extension", 9 | "version": "1.0.0", 10 | "license": "ISC", 11 | "dependencies": { 12 | "archiver": "^5.3.1", 13 | "esbuild": "^0.15.17", 14 | "eventsource-parser": "^0.0.5", 15 | "expiry-map": "^2.0.0", 16 | "markdown-it": "^13.0.1", 17 | "punycode": "^2.1.1", 18 | "uuid": "^9.0.0" 19 | }, 20 | "devDependencies": { 21 | "eslint": "^8.29.0", 22 | "prettier": "^2.8.0", 23 | "webextension-polyfill": "^0.10.0" 24 | } 25 | }, 26 | "node_modules/@esbuild/android-arm": { 27 | "version": "0.15.17", 28 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.17.tgz", 29 | "integrity": "sha512-ay6Ken4u+JStjYmqIgh71jMT0bs/rXpCCDKaMfl78B20QYWJglT5P6Ejfm4hWf6Zi+uUWNe7ZmqakRs2BQYIeg==", 30 | "cpu": [ 31 | "arm" 32 | ], 33 | "optional": true, 34 | "os": [ 35 | "android" 36 | ], 37 | "engines": { 38 | "node": ">=12" 39 | } 40 | }, 41 | "node_modules/@esbuild/linux-loong64": { 42 | "version": "0.15.17", 43 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.17.tgz", 44 | "integrity": "sha512-IA1O7f7qxw2DX8oqTpugHElr926phs7Rq8ULXleBMk4go5K05BU0mI8BfCkWcYAvcmVaMc13bv5W3LIUlU6Y9w==", 45 | "cpu": [ 46 | "loong64" 47 | ], 48 | "optional": true, 49 | "os": [ 50 | "linux" 51 | ], 52 | "engines": { 53 | "node": ">=12" 54 | } 55 | }, 56 | "node_modules/@eslint/eslintrc": { 57 | "version": "1.3.3", 58 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", 59 | "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", 60 | "dev": true, 61 | "dependencies": { 62 | "ajv": "^6.12.4", 63 | "debug": "^4.3.2", 64 | "espree": "^9.4.0", 65 | "globals": "^13.15.0", 66 | "ignore": "^5.2.0", 67 | "import-fresh": "^3.2.1", 68 | "js-yaml": "^4.1.0", 69 | "minimatch": "^3.1.2", 70 | "strip-json-comments": "^3.1.1" 71 | }, 72 | "engines": { 73 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 74 | }, 75 | "funding": { 76 | "url": "https://opencollective.com/eslint" 77 | } 78 | }, 79 | "node_modules/@humanwhocodes/config-array": { 80 | "version": "0.11.7", 81 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", 82 | "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", 83 | "dev": true, 84 | "dependencies": { 85 | "@humanwhocodes/object-schema": "^1.2.1", 86 | "debug": "^4.1.1", 87 | "minimatch": "^3.0.5" 88 | }, 89 | "engines": { 90 | "node": ">=10.10.0" 91 | } 92 | }, 93 | "node_modules/@humanwhocodes/module-importer": { 94 | "version": "1.0.1", 95 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 96 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 97 | "dev": true, 98 | "engines": { 99 | "node": ">=12.22" 100 | }, 101 | "funding": { 102 | "type": "github", 103 | "url": "https://github.com/sponsors/nzakas" 104 | } 105 | }, 106 | "node_modules/@humanwhocodes/object-schema": { 107 | "version": "1.2.1", 108 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", 109 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", 110 | "dev": true 111 | }, 112 | "node_modules/@nodelib/fs.scandir": { 113 | "version": "2.1.5", 114 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 115 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 116 | "dev": true, 117 | "dependencies": { 118 | "@nodelib/fs.stat": "2.0.5", 119 | "run-parallel": "^1.1.9" 120 | }, 121 | "engines": { 122 | "node": ">= 8" 123 | } 124 | }, 125 | "node_modules/@nodelib/fs.stat": { 126 | "version": "2.0.5", 127 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 128 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 129 | "dev": true, 130 | "engines": { 131 | "node": ">= 8" 132 | } 133 | }, 134 | "node_modules/@nodelib/fs.walk": { 135 | "version": "1.2.8", 136 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 137 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 138 | "dev": true, 139 | "dependencies": { 140 | "@nodelib/fs.scandir": "2.1.5", 141 | "fastq": "^1.6.0" 142 | }, 143 | "engines": { 144 | "node": ">= 8" 145 | } 146 | }, 147 | "node_modules/acorn": { 148 | "version": "8.8.1", 149 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", 150 | "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", 151 | "dev": true, 152 | "bin": { 153 | "acorn": "bin/acorn" 154 | }, 155 | "engines": { 156 | "node": ">=0.4.0" 157 | } 158 | }, 159 | "node_modules/acorn-jsx": { 160 | "version": "5.3.2", 161 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 162 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 163 | "dev": true, 164 | "peerDependencies": { 165 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 166 | } 167 | }, 168 | "node_modules/ajv": { 169 | "version": "6.12.6", 170 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 171 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 172 | "dev": true, 173 | "dependencies": { 174 | "fast-deep-equal": "^3.1.1", 175 | "fast-json-stable-stringify": "^2.0.0", 176 | "json-schema-traverse": "^0.4.1", 177 | "uri-js": "^4.2.2" 178 | }, 179 | "funding": { 180 | "type": "github", 181 | "url": "https://github.com/sponsors/epoberezkin" 182 | } 183 | }, 184 | "node_modules/ansi-regex": { 185 | "version": "5.0.1", 186 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 187 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 188 | "dev": true, 189 | "engines": { 190 | "node": ">=8" 191 | } 192 | }, 193 | "node_modules/ansi-styles": { 194 | "version": "4.3.0", 195 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 196 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 197 | "dev": true, 198 | "dependencies": { 199 | "color-convert": "^2.0.1" 200 | }, 201 | "engines": { 202 | "node": ">=8" 203 | }, 204 | "funding": { 205 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 206 | } 207 | }, 208 | "node_modules/archiver": { 209 | "version": "5.3.1", 210 | "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", 211 | "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", 212 | "dependencies": { 213 | "archiver-utils": "^2.1.0", 214 | "async": "^3.2.3", 215 | "buffer-crc32": "^0.2.1", 216 | "readable-stream": "^3.6.0", 217 | "readdir-glob": "^1.0.0", 218 | "tar-stream": "^2.2.0", 219 | "zip-stream": "^4.1.0" 220 | }, 221 | "engines": { 222 | "node": ">= 10" 223 | } 224 | }, 225 | "node_modules/archiver-utils": { 226 | "version": "2.1.0", 227 | "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", 228 | "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", 229 | "dependencies": { 230 | "glob": "^7.1.4", 231 | "graceful-fs": "^4.2.0", 232 | "lazystream": "^1.0.0", 233 | "lodash.defaults": "^4.2.0", 234 | "lodash.difference": "^4.5.0", 235 | "lodash.flatten": "^4.4.0", 236 | "lodash.isplainobject": "^4.0.6", 237 | "lodash.union": "^4.6.0", 238 | "normalize-path": "^3.0.0", 239 | "readable-stream": "^2.0.0" 240 | }, 241 | "engines": { 242 | "node": ">= 6" 243 | } 244 | }, 245 | "node_modules/archiver-utils/node_modules/readable-stream": { 246 | "version": "2.3.7", 247 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 248 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 249 | "dependencies": { 250 | "core-util-is": "~1.0.0", 251 | "inherits": "~2.0.3", 252 | "isarray": "~1.0.0", 253 | "process-nextick-args": "~2.0.0", 254 | "safe-buffer": "~5.1.1", 255 | "string_decoder": "~1.1.1", 256 | "util-deprecate": "~1.0.1" 257 | } 258 | }, 259 | "node_modules/archiver-utils/node_modules/safe-buffer": { 260 | "version": "5.1.2", 261 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 262 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 263 | }, 264 | "node_modules/archiver-utils/node_modules/string_decoder": { 265 | "version": "1.1.1", 266 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 267 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 268 | "dependencies": { 269 | "safe-buffer": "~5.1.0" 270 | } 271 | }, 272 | "node_modules/argparse": { 273 | "version": "2.0.1", 274 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 275 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" 276 | }, 277 | "node_modules/async": { 278 | "version": "3.2.4", 279 | "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", 280 | "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" 281 | }, 282 | "node_modules/balanced-match": { 283 | "version": "1.0.2", 284 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 285 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 286 | }, 287 | "node_modules/base64-js": { 288 | "version": "1.5.1", 289 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 290 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 291 | "funding": [ 292 | { 293 | "type": "github", 294 | "url": "https://github.com/sponsors/feross" 295 | }, 296 | { 297 | "type": "patreon", 298 | "url": "https://www.patreon.com/feross" 299 | }, 300 | { 301 | "type": "consulting", 302 | "url": "https://feross.org/support" 303 | } 304 | ] 305 | }, 306 | "node_modules/bl": { 307 | "version": "4.1.0", 308 | "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", 309 | "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", 310 | "dependencies": { 311 | "buffer": "^5.5.0", 312 | "inherits": "^2.0.4", 313 | "readable-stream": "^3.4.0" 314 | } 315 | }, 316 | "node_modules/brace-expansion": { 317 | "version": "1.1.11", 318 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 319 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 320 | "dependencies": { 321 | "balanced-match": "^1.0.0", 322 | "concat-map": "0.0.1" 323 | } 324 | }, 325 | "node_modules/buffer": { 326 | "version": "5.7.1", 327 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 328 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 329 | "funding": [ 330 | { 331 | "type": "github", 332 | "url": "https://github.com/sponsors/feross" 333 | }, 334 | { 335 | "type": "patreon", 336 | "url": "https://www.patreon.com/feross" 337 | }, 338 | { 339 | "type": "consulting", 340 | "url": "https://feross.org/support" 341 | } 342 | ], 343 | "dependencies": { 344 | "base64-js": "^1.3.1", 345 | "ieee754": "^1.1.13" 346 | } 347 | }, 348 | "node_modules/buffer-crc32": { 349 | "version": "0.2.13", 350 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 351 | "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", 352 | "engines": { 353 | "node": "*" 354 | } 355 | }, 356 | "node_modules/callsites": { 357 | "version": "3.1.0", 358 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 359 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 360 | "dev": true, 361 | "engines": { 362 | "node": ">=6" 363 | } 364 | }, 365 | "node_modules/chalk": { 366 | "version": "4.1.2", 367 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 368 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 369 | "dev": true, 370 | "dependencies": { 371 | "ansi-styles": "^4.1.0", 372 | "supports-color": "^7.1.0" 373 | }, 374 | "engines": { 375 | "node": ">=10" 376 | }, 377 | "funding": { 378 | "url": "https://github.com/chalk/chalk?sponsor=1" 379 | } 380 | }, 381 | "node_modules/color-convert": { 382 | "version": "2.0.1", 383 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 384 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 385 | "dev": true, 386 | "dependencies": { 387 | "color-name": "~1.1.4" 388 | }, 389 | "engines": { 390 | "node": ">=7.0.0" 391 | } 392 | }, 393 | "node_modules/color-name": { 394 | "version": "1.1.4", 395 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 396 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 397 | "dev": true 398 | }, 399 | "node_modules/compress-commons": { 400 | "version": "4.1.1", 401 | "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", 402 | "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", 403 | "dependencies": { 404 | "buffer-crc32": "^0.2.13", 405 | "crc32-stream": "^4.0.2", 406 | "normalize-path": "^3.0.0", 407 | "readable-stream": "^3.6.0" 408 | }, 409 | "engines": { 410 | "node": ">= 10" 411 | } 412 | }, 413 | "node_modules/concat-map": { 414 | "version": "0.0.1", 415 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 416 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 417 | }, 418 | "node_modules/core-util-is": { 419 | "version": "1.0.3", 420 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", 421 | "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" 422 | }, 423 | "node_modules/crc-32": { 424 | "version": "1.2.2", 425 | "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", 426 | "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", 427 | "bin": { 428 | "crc32": "bin/crc32.njs" 429 | }, 430 | "engines": { 431 | "node": ">=0.8" 432 | } 433 | }, 434 | "node_modules/crc32-stream": { 435 | "version": "4.0.2", 436 | "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", 437 | "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", 438 | "dependencies": { 439 | "crc-32": "^1.2.0", 440 | "readable-stream": "^3.4.0" 441 | }, 442 | "engines": { 443 | "node": ">= 10" 444 | } 445 | }, 446 | "node_modules/cross-spawn": { 447 | "version": "7.0.3", 448 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 449 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 450 | "dev": true, 451 | "dependencies": { 452 | "path-key": "^3.1.0", 453 | "shebang-command": "^2.0.0", 454 | "which": "^2.0.1" 455 | }, 456 | "engines": { 457 | "node": ">= 8" 458 | } 459 | }, 460 | "node_modules/debug": { 461 | "version": "4.3.4", 462 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 463 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 464 | "dev": true, 465 | "dependencies": { 466 | "ms": "2.1.2" 467 | }, 468 | "engines": { 469 | "node": ">=6.0" 470 | }, 471 | "peerDependenciesMeta": { 472 | "supports-color": { 473 | "optional": true 474 | } 475 | } 476 | }, 477 | "node_modules/deep-is": { 478 | "version": "0.1.4", 479 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 480 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 481 | "dev": true 482 | }, 483 | "node_modules/doctrine": { 484 | "version": "3.0.0", 485 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 486 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 487 | "dev": true, 488 | "dependencies": { 489 | "esutils": "^2.0.2" 490 | }, 491 | "engines": { 492 | "node": ">=6.0.0" 493 | } 494 | }, 495 | "node_modules/end-of-stream": { 496 | "version": "1.4.4", 497 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 498 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 499 | "dependencies": { 500 | "once": "^1.4.0" 501 | } 502 | }, 503 | "node_modules/entities": { 504 | "version": "3.0.1", 505 | "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", 506 | "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", 507 | "engines": { 508 | "node": ">=0.12" 509 | }, 510 | "funding": { 511 | "url": "https://github.com/fb55/entities?sponsor=1" 512 | } 513 | }, 514 | "node_modules/esbuild": { 515 | "version": "0.15.17", 516 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.17.tgz", 517 | "integrity": "sha512-8MbkDX+kh0kaeYGd6klMbn1uTOXHoDw7UYMd1dQYA5cqBZivf5+pzfaXZSL1RNamJfXW/uWC5+9wX5ejDgpSqg==", 518 | "hasInstallScript": true, 519 | "bin": { 520 | "esbuild": "bin/esbuild" 521 | }, 522 | "engines": { 523 | "node": ">=12" 524 | }, 525 | "optionalDependencies": { 526 | "@esbuild/android-arm": "0.15.17", 527 | "@esbuild/linux-loong64": "0.15.17", 528 | "esbuild-android-64": "0.15.17", 529 | "esbuild-android-arm64": "0.15.17", 530 | "esbuild-darwin-64": "0.15.17", 531 | "esbuild-darwin-arm64": "0.15.17", 532 | "esbuild-freebsd-64": "0.15.17", 533 | "esbuild-freebsd-arm64": "0.15.17", 534 | "esbuild-linux-32": "0.15.17", 535 | "esbuild-linux-64": "0.15.17", 536 | "esbuild-linux-arm": "0.15.17", 537 | "esbuild-linux-arm64": "0.15.17", 538 | "esbuild-linux-mips64le": "0.15.17", 539 | "esbuild-linux-ppc64le": "0.15.17", 540 | "esbuild-linux-riscv64": "0.15.17", 541 | "esbuild-linux-s390x": "0.15.17", 542 | "esbuild-netbsd-64": "0.15.17", 543 | "esbuild-openbsd-64": "0.15.17", 544 | "esbuild-sunos-64": "0.15.17", 545 | "esbuild-windows-32": "0.15.17", 546 | "esbuild-windows-64": "0.15.17", 547 | "esbuild-windows-arm64": "0.15.17" 548 | } 549 | }, 550 | "node_modules/esbuild-android-64": { 551 | "version": "0.15.17", 552 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.17.tgz", 553 | "integrity": "sha512-sUs6cKMAuAyWnJ/66ezWVr9SMRGFSwoMagxzdhXYggSA12zF7krXSuc1Y9JwxHq56wtv/gFAVo97TFm7RBc1Ig==", 554 | "cpu": [ 555 | "x64" 556 | ], 557 | "optional": true, 558 | "os": [ 559 | "android" 560 | ], 561 | "engines": { 562 | "node": ">=12" 563 | } 564 | }, 565 | "node_modules/esbuild-android-arm64": { 566 | "version": "0.15.17", 567 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.17.tgz", 568 | "integrity": "sha512-RLZuCgIx1rexwxwsXTEW40ZiZzdBI1MBphwDRFyms/iiJGwLxqCH7v75iSJk5s6AF6oa80KC6r/RmzyaX/uJNg==", 569 | "cpu": [ 570 | "arm64" 571 | ], 572 | "optional": true, 573 | "os": [ 574 | "android" 575 | ], 576 | "engines": { 577 | "node": ">=12" 578 | } 579 | }, 580 | "node_modules/esbuild-darwin-64": { 581 | "version": "0.15.17", 582 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.17.tgz", 583 | "integrity": "sha512-+6RTCZ0hfAb+RqTNq1uVsBcP441yZOSi6CyV9BIBryGGVg8RM3Bc6L45e5b68jdRloddN92ekS50e4ElI+cHQA==", 584 | "cpu": [ 585 | "x64" 586 | ], 587 | "optional": true, 588 | "os": [ 589 | "darwin" 590 | ], 591 | "engines": { 592 | "node": ">=12" 593 | } 594 | }, 595 | "node_modules/esbuild-darwin-arm64": { 596 | "version": "0.15.17", 597 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.17.tgz", 598 | "integrity": "sha512-ne4UWUHEKWLgYSE5SLr0/TBcID3k9LPnrzzRXzFLTfD+ygjnW1pMEgdMfmOKIe8jYBUYv8x/YoksriTdQb9r/Q==", 599 | "cpu": [ 600 | "arm64" 601 | ], 602 | "optional": true, 603 | "os": [ 604 | "darwin" 605 | ], 606 | "engines": { 607 | "node": ">=12" 608 | } 609 | }, 610 | "node_modules/esbuild-freebsd-64": { 611 | "version": "0.15.17", 612 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.17.tgz", 613 | "integrity": "sha512-6my3DrwLOe1zhR8UzVRKeo9AFM9XkApJBcx0IE+qKaEbKKBxYAiDBtd2ZMtRA2agqIwRP0kuHofTiDEzpfA+ZA==", 614 | "cpu": [ 615 | "x64" 616 | ], 617 | "optional": true, 618 | "os": [ 619 | "freebsd" 620 | ], 621 | "engines": { 622 | "node": ">=12" 623 | } 624 | }, 625 | "node_modules/esbuild-freebsd-arm64": { 626 | "version": "0.15.17", 627 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.17.tgz", 628 | "integrity": "sha512-LQL7+f+bz+xmAu1FcDBB304Wm2CjONUcOeF4f3TqG7wYXMxjjYQZBFv+0OVapNXyYrM2vy9JMDbps+SheuOnHg==", 629 | "cpu": [ 630 | "arm64" 631 | ], 632 | "optional": true, 633 | "os": [ 634 | "freebsd" 635 | ], 636 | "engines": { 637 | "node": ">=12" 638 | } 639 | }, 640 | "node_modules/esbuild-linux-32": { 641 | "version": "0.15.17", 642 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.17.tgz", 643 | "integrity": "sha512-7E9vZXMZhINQ4/KcxBxioJ2ao5gbXJ6Pa4/LEUd102g3gadSalpg0LrityFgw7ao6qmjcNWwdEYrXaDnOzyyYA==", 644 | "cpu": [ 645 | "ia32" 646 | ], 647 | "optional": true, 648 | "os": [ 649 | "linux" 650 | ], 651 | "engines": { 652 | "node": ">=12" 653 | } 654 | }, 655 | "node_modules/esbuild-linux-64": { 656 | "version": "0.15.17", 657 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.17.tgz", 658 | "integrity": "sha512-TnedHtFQSUVlc0J0D4ZMMalYaQ0Zbt7HSwGy4sav7BlXVqDVc/rchJ/a9dathK51apzLgRyXQMseLf6bkloaSQ==", 659 | "cpu": [ 660 | "x64" 661 | ], 662 | "optional": true, 663 | "os": [ 664 | "linux" 665 | ], 666 | "engines": { 667 | "node": ">=12" 668 | } 669 | }, 670 | "node_modules/esbuild-linux-arm": { 671 | "version": "0.15.17", 672 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.17.tgz", 673 | "integrity": "sha512-+ugCmBTTDIlh+UuC7E/GvyJqjGTX2pNOA+g3isG78aYcfgswrHjvstTtIfljaU95AS30qrVNLgI5h/8TsRWTrg==", 674 | "cpu": [ 675 | "arm" 676 | ], 677 | "optional": true, 678 | "os": [ 679 | "linux" 680 | ], 681 | "engines": { 682 | "node": ">=12" 683 | } 684 | }, 685 | "node_modules/esbuild-linux-arm64": { 686 | "version": "0.15.17", 687 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.17.tgz", 688 | "integrity": "sha512-oupYfh0lTHg+F/2ZoTNrioB+KLd6x0Zlhjz2Oa1jhl8wCGkNvwe25RytR2/SGPYpoNVcvCeoayWQRwwRuWGgfQ==", 689 | "cpu": [ 690 | "arm64" 691 | ], 692 | "optional": true, 693 | "os": [ 694 | "linux" 695 | ], 696 | "engines": { 697 | "node": ">=12" 698 | } 699 | }, 700 | "node_modules/esbuild-linux-mips64le": { 701 | "version": "0.15.17", 702 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.17.tgz", 703 | "integrity": "sha512-aUVyHwUXJF1hi9jsAT+At+cBxZh2yGICi/e757N6d/zzOD+eVK3PKQj68tAvIflx6/ZpnuCTKol1GpgGYrzERg==", 704 | "cpu": [ 705 | "mips64el" 706 | ], 707 | "optional": true, 708 | "os": [ 709 | "linux" 710 | ], 711 | "engines": { 712 | "node": ">=12" 713 | } 714 | }, 715 | "node_modules/esbuild-linux-ppc64le": { 716 | "version": "0.15.17", 717 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.17.tgz", 718 | "integrity": "sha512-i7789iFTLfLccHPNADCbaZPx9CuQblsBqv2j4XqIBN1jKIJbpQ8iqCkWoHep4PLqqKLtBLtTWh919GsrFGdeJA==", 719 | "cpu": [ 720 | "ppc64" 721 | ], 722 | "optional": true, 723 | "os": [ 724 | "linux" 725 | ], 726 | "engines": { 727 | "node": ">=12" 728 | } 729 | }, 730 | "node_modules/esbuild-linux-riscv64": { 731 | "version": "0.15.17", 732 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.17.tgz", 733 | "integrity": "sha512-fEQ/8tnZ2sDniBlPfTXEdg+0OP1olps96HvYdwl8ywJdAlD7AK761EL3lRbRdfMHNOId2N6+CVca43/Fiu/0AQ==", 734 | "cpu": [ 735 | "riscv64" 736 | ], 737 | "optional": true, 738 | "os": [ 739 | "linux" 740 | ], 741 | "engines": { 742 | "node": ">=12" 743 | } 744 | }, 745 | "node_modules/esbuild-linux-s390x": { 746 | "version": "0.15.17", 747 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.17.tgz", 748 | "integrity": "sha512-ZBQekST4gYgTKHAvUJtR1kFFulHTDlRZSE8T0wRQCmQqydNkC1teWxlR31xS6MZevjZGfa7OMVJD24bBhei/2Q==", 749 | "cpu": [ 750 | "s390x" 751 | ], 752 | "optional": true, 753 | "os": [ 754 | "linux" 755 | ], 756 | "engines": { 757 | "node": ">=12" 758 | } 759 | }, 760 | "node_modules/esbuild-netbsd-64": { 761 | "version": "0.15.17", 762 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.17.tgz", 763 | "integrity": "sha512-onNBFaZVN9GzGJMm3aZJJv74n/Q8FjW20G9OfSDhHjvamqJ5vbd42hNk6igQX4lgBCHTZvvBlWDJAMy+tbJAAw==", 764 | "cpu": [ 765 | "x64" 766 | ], 767 | "optional": true, 768 | "os": [ 769 | "netbsd" 770 | ], 771 | "engines": { 772 | "node": ">=12" 773 | } 774 | }, 775 | "node_modules/esbuild-openbsd-64": { 776 | "version": "0.15.17", 777 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.17.tgz", 778 | "integrity": "sha512-QFxHmvjaRrmTCvH/A3EmzqKUSZHRQ7/pbrJeATsb/Q6qckCeL9e7zg/1A3HiZqDXeBUV3yNeBeV1GJBjY6yVyA==", 779 | "cpu": [ 780 | "x64" 781 | ], 782 | "optional": true, 783 | "os": [ 784 | "openbsd" 785 | ], 786 | "engines": { 787 | "node": ">=12" 788 | } 789 | }, 790 | "node_modules/esbuild-sunos-64": { 791 | "version": "0.15.17", 792 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.17.tgz", 793 | "integrity": "sha512-7dHZA8Kc6U8rBTKojJatXtzHTUKJ3CRYimvOGIQQ1yUDOqGx/zZkCH/HkEi3Zg5SWyDj/57E5e1YJPo4ySSw/w==", 794 | "cpu": [ 795 | "x64" 796 | ], 797 | "optional": true, 798 | "os": [ 799 | "sunos" 800 | ], 801 | "engines": { 802 | "node": ">=12" 803 | } 804 | }, 805 | "node_modules/esbuild-windows-32": { 806 | "version": "0.15.17", 807 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.17.tgz", 808 | "integrity": "sha512-yDrNrwQ/0k4N3OZItZ6k6YnBUch8+of06YRYc3hFI8VDm7X1rkNZwhttZNAzF6+TtbnK4cIz7H2/EwdSoaGZ3g==", 809 | "cpu": [ 810 | "ia32" 811 | ], 812 | "optional": true, 813 | "os": [ 814 | "win32" 815 | ], 816 | "engines": { 817 | "node": ">=12" 818 | } 819 | }, 820 | "node_modules/esbuild-windows-64": { 821 | "version": "0.15.17", 822 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.17.tgz", 823 | "integrity": "sha512-jPnXvB4zMMToNPpCBdt+OEQiYFVs9wlQ5G8vMoJkrYJBp1aEt070MRpBFa6pfBFrgXquqgUiNAohMcTdy+JVFg==", 824 | "cpu": [ 825 | "x64" 826 | ], 827 | "optional": true, 828 | "os": [ 829 | "win32" 830 | ], 831 | "engines": { 832 | "node": ">=12" 833 | } 834 | }, 835 | "node_modules/esbuild-windows-arm64": { 836 | "version": "0.15.17", 837 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.17.tgz", 838 | "integrity": "sha512-I5QeSsz0X66V8rxVhmw03Wzn8Tz63H3L9GrsA7C5wvBXMk3qahLWuEL+l7SZ2DleKkFeZZMu1dPxOak9f1TZ4A==", 839 | "cpu": [ 840 | "arm64" 841 | ], 842 | "optional": true, 843 | "os": [ 844 | "win32" 845 | ], 846 | "engines": { 847 | "node": ">=12" 848 | } 849 | }, 850 | "node_modules/escape-string-regexp": { 851 | "version": "4.0.0", 852 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 853 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 854 | "dev": true, 855 | "engines": { 856 | "node": ">=10" 857 | }, 858 | "funding": { 859 | "url": "https://github.com/sponsors/sindresorhus" 860 | } 861 | }, 862 | "node_modules/eslint": { 863 | "version": "8.29.0", 864 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz", 865 | "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==", 866 | "dev": true, 867 | "dependencies": { 868 | "@eslint/eslintrc": "^1.3.3", 869 | "@humanwhocodes/config-array": "^0.11.6", 870 | "@humanwhocodes/module-importer": "^1.0.1", 871 | "@nodelib/fs.walk": "^1.2.8", 872 | "ajv": "^6.10.0", 873 | "chalk": "^4.0.0", 874 | "cross-spawn": "^7.0.2", 875 | "debug": "^4.3.2", 876 | "doctrine": "^3.0.0", 877 | "escape-string-regexp": "^4.0.0", 878 | "eslint-scope": "^7.1.1", 879 | "eslint-utils": "^3.0.0", 880 | "eslint-visitor-keys": "^3.3.0", 881 | "espree": "^9.4.0", 882 | "esquery": "^1.4.0", 883 | "esutils": "^2.0.2", 884 | "fast-deep-equal": "^3.1.3", 885 | "file-entry-cache": "^6.0.1", 886 | "find-up": "^5.0.0", 887 | "glob-parent": "^6.0.2", 888 | "globals": "^13.15.0", 889 | "grapheme-splitter": "^1.0.4", 890 | "ignore": "^5.2.0", 891 | "import-fresh": "^3.0.0", 892 | "imurmurhash": "^0.1.4", 893 | "is-glob": "^4.0.0", 894 | "is-path-inside": "^3.0.3", 895 | "js-sdsl": "^4.1.4", 896 | "js-yaml": "^4.1.0", 897 | "json-stable-stringify-without-jsonify": "^1.0.1", 898 | "levn": "^0.4.1", 899 | "lodash.merge": "^4.6.2", 900 | "minimatch": "^3.1.2", 901 | "natural-compare": "^1.4.0", 902 | "optionator": "^0.9.1", 903 | "regexpp": "^3.2.0", 904 | "strip-ansi": "^6.0.1", 905 | "strip-json-comments": "^3.1.0", 906 | "text-table": "^0.2.0" 907 | }, 908 | "bin": { 909 | "eslint": "bin/eslint.js" 910 | }, 911 | "engines": { 912 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 913 | }, 914 | "funding": { 915 | "url": "https://opencollective.com/eslint" 916 | } 917 | }, 918 | "node_modules/eslint-scope": { 919 | "version": "7.1.1", 920 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", 921 | "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", 922 | "dev": true, 923 | "dependencies": { 924 | "esrecurse": "^4.3.0", 925 | "estraverse": "^5.2.0" 926 | }, 927 | "engines": { 928 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 929 | } 930 | }, 931 | "node_modules/eslint-utils": { 932 | "version": "3.0.0", 933 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", 934 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", 935 | "dev": true, 936 | "dependencies": { 937 | "eslint-visitor-keys": "^2.0.0" 938 | }, 939 | "engines": { 940 | "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" 941 | }, 942 | "funding": { 943 | "url": "https://github.com/sponsors/mysticatea" 944 | }, 945 | "peerDependencies": { 946 | "eslint": ">=5" 947 | } 948 | }, 949 | "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { 950 | "version": "2.1.0", 951 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", 952 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", 953 | "dev": true, 954 | "engines": { 955 | "node": ">=10" 956 | } 957 | }, 958 | "node_modules/eslint-visitor-keys": { 959 | "version": "3.3.0", 960 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", 961 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", 962 | "dev": true, 963 | "engines": { 964 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 965 | } 966 | }, 967 | "node_modules/espree": { 968 | "version": "9.4.1", 969 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", 970 | "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", 971 | "dev": true, 972 | "dependencies": { 973 | "acorn": "^8.8.0", 974 | "acorn-jsx": "^5.3.2", 975 | "eslint-visitor-keys": "^3.3.0" 976 | }, 977 | "engines": { 978 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 979 | }, 980 | "funding": { 981 | "url": "https://opencollective.com/eslint" 982 | } 983 | }, 984 | "node_modules/esquery": { 985 | "version": "1.4.0", 986 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", 987 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", 988 | "dev": true, 989 | "dependencies": { 990 | "estraverse": "^5.1.0" 991 | }, 992 | "engines": { 993 | "node": ">=0.10" 994 | } 995 | }, 996 | "node_modules/esrecurse": { 997 | "version": "4.3.0", 998 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 999 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 1000 | "dev": true, 1001 | "dependencies": { 1002 | "estraverse": "^5.2.0" 1003 | }, 1004 | "engines": { 1005 | "node": ">=4.0" 1006 | } 1007 | }, 1008 | "node_modules/estraverse": { 1009 | "version": "5.3.0", 1010 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 1011 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 1012 | "dev": true, 1013 | "engines": { 1014 | "node": ">=4.0" 1015 | } 1016 | }, 1017 | "node_modules/esutils": { 1018 | "version": "2.0.3", 1019 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 1020 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 1021 | "dev": true, 1022 | "engines": { 1023 | "node": ">=0.10.0" 1024 | } 1025 | }, 1026 | "node_modules/eventsource-parser": { 1027 | "version": "0.0.5", 1028 | "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-0.0.5.tgz", 1029 | "integrity": "sha512-BAq82bC3ZW9fPYYZlofXBOAfbpmDzXIOsj+GOehQwgTUYsQZ6HtHs6zuRtge7Ph8OhS6lNH1kJF8q9dj17RcmA==", 1030 | "engines": { 1031 | "node": ">=12" 1032 | } 1033 | }, 1034 | "node_modules/expiry-map": { 1035 | "version": "2.0.0", 1036 | "resolved": "https://registry.npmjs.org/expiry-map/-/expiry-map-2.0.0.tgz", 1037 | "integrity": "sha512-K1I5wJe2fiqjyUZf/xhxwTpaopw3F+19DsO7Oggl20+3SVTXDIevVRJav0aBMfposQdkl2E4+gnuOKd3j2X0sA==", 1038 | "dependencies": { 1039 | "map-age-cleaner": "^0.2.0" 1040 | }, 1041 | "engines": { 1042 | "node": ">=8" 1043 | } 1044 | }, 1045 | "node_modules/fast-deep-equal": { 1046 | "version": "3.1.3", 1047 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 1048 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 1049 | "dev": true 1050 | }, 1051 | "node_modules/fast-json-stable-stringify": { 1052 | "version": "2.1.0", 1053 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 1054 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 1055 | "dev": true 1056 | }, 1057 | "node_modules/fast-levenshtein": { 1058 | "version": "2.0.6", 1059 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1060 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 1061 | "dev": true 1062 | }, 1063 | "node_modules/fastq": { 1064 | "version": "1.14.0", 1065 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", 1066 | "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", 1067 | "dev": true, 1068 | "dependencies": { 1069 | "reusify": "^1.0.4" 1070 | } 1071 | }, 1072 | "node_modules/file-entry-cache": { 1073 | "version": "6.0.1", 1074 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", 1075 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", 1076 | "dev": true, 1077 | "dependencies": { 1078 | "flat-cache": "^3.0.4" 1079 | }, 1080 | "engines": { 1081 | "node": "^10.12.0 || >=12.0.0" 1082 | } 1083 | }, 1084 | "node_modules/find-up": { 1085 | "version": "5.0.0", 1086 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 1087 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 1088 | "dev": true, 1089 | "dependencies": { 1090 | "locate-path": "^6.0.0", 1091 | "path-exists": "^4.0.0" 1092 | }, 1093 | "engines": { 1094 | "node": ">=10" 1095 | }, 1096 | "funding": { 1097 | "url": "https://github.com/sponsors/sindresorhus" 1098 | } 1099 | }, 1100 | "node_modules/flat-cache": { 1101 | "version": "3.0.4", 1102 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", 1103 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", 1104 | "dev": true, 1105 | "dependencies": { 1106 | "flatted": "^3.1.0", 1107 | "rimraf": "^3.0.2" 1108 | }, 1109 | "engines": { 1110 | "node": "^10.12.0 || >=12.0.0" 1111 | } 1112 | }, 1113 | "node_modules/flatted": { 1114 | "version": "3.2.7", 1115 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", 1116 | "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", 1117 | "dev": true 1118 | }, 1119 | "node_modules/fs-constants": { 1120 | "version": "1.0.0", 1121 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 1122 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" 1123 | }, 1124 | "node_modules/fs.realpath": { 1125 | "version": "1.0.0", 1126 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1127 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" 1128 | }, 1129 | "node_modules/glob": { 1130 | "version": "7.2.3", 1131 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 1132 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 1133 | "dependencies": { 1134 | "fs.realpath": "^1.0.0", 1135 | "inflight": "^1.0.4", 1136 | "inherits": "2", 1137 | "minimatch": "^3.1.1", 1138 | "once": "^1.3.0", 1139 | "path-is-absolute": "^1.0.0" 1140 | }, 1141 | "engines": { 1142 | "node": "*" 1143 | }, 1144 | "funding": { 1145 | "url": "https://github.com/sponsors/isaacs" 1146 | } 1147 | }, 1148 | "node_modules/glob-parent": { 1149 | "version": "6.0.2", 1150 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 1151 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 1152 | "dev": true, 1153 | "dependencies": { 1154 | "is-glob": "^4.0.3" 1155 | }, 1156 | "engines": { 1157 | "node": ">=10.13.0" 1158 | } 1159 | }, 1160 | "node_modules/globals": { 1161 | "version": "13.18.0", 1162 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", 1163 | "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", 1164 | "dev": true, 1165 | "dependencies": { 1166 | "type-fest": "^0.20.2" 1167 | }, 1168 | "engines": { 1169 | "node": ">=8" 1170 | }, 1171 | "funding": { 1172 | "url": "https://github.com/sponsors/sindresorhus" 1173 | } 1174 | }, 1175 | "node_modules/graceful-fs": { 1176 | "version": "4.2.10", 1177 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", 1178 | "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" 1179 | }, 1180 | "node_modules/grapheme-splitter": { 1181 | "version": "1.0.4", 1182 | "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", 1183 | "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", 1184 | "dev": true 1185 | }, 1186 | "node_modules/has-flag": { 1187 | "version": "4.0.0", 1188 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1189 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1190 | "dev": true, 1191 | "engines": { 1192 | "node": ">=8" 1193 | } 1194 | }, 1195 | "node_modules/ieee754": { 1196 | "version": "1.2.1", 1197 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 1198 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 1199 | "funding": [ 1200 | { 1201 | "type": "github", 1202 | "url": "https://github.com/sponsors/feross" 1203 | }, 1204 | { 1205 | "type": "patreon", 1206 | "url": "https://www.patreon.com/feross" 1207 | }, 1208 | { 1209 | "type": "consulting", 1210 | "url": "https://feross.org/support" 1211 | } 1212 | ] 1213 | }, 1214 | "node_modules/ignore": { 1215 | "version": "5.2.1", 1216 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", 1217 | "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", 1218 | "dev": true, 1219 | "engines": { 1220 | "node": ">= 4" 1221 | } 1222 | }, 1223 | "node_modules/import-fresh": { 1224 | "version": "3.3.0", 1225 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 1226 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 1227 | "dev": true, 1228 | "dependencies": { 1229 | "parent-module": "^1.0.0", 1230 | "resolve-from": "^4.0.0" 1231 | }, 1232 | "engines": { 1233 | "node": ">=6" 1234 | }, 1235 | "funding": { 1236 | "url": "https://github.com/sponsors/sindresorhus" 1237 | } 1238 | }, 1239 | "node_modules/imurmurhash": { 1240 | "version": "0.1.4", 1241 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1242 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 1243 | "dev": true, 1244 | "engines": { 1245 | "node": ">=0.8.19" 1246 | } 1247 | }, 1248 | "node_modules/inflight": { 1249 | "version": "1.0.6", 1250 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1251 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 1252 | "dependencies": { 1253 | "once": "^1.3.0", 1254 | "wrappy": "1" 1255 | } 1256 | }, 1257 | "node_modules/inherits": { 1258 | "version": "2.0.4", 1259 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1260 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1261 | }, 1262 | "node_modules/is-extglob": { 1263 | "version": "2.1.1", 1264 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1265 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 1266 | "dev": true, 1267 | "engines": { 1268 | "node": ">=0.10.0" 1269 | } 1270 | }, 1271 | "node_modules/is-glob": { 1272 | "version": "4.0.3", 1273 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1274 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1275 | "dev": true, 1276 | "dependencies": { 1277 | "is-extglob": "^2.1.1" 1278 | }, 1279 | "engines": { 1280 | "node": ">=0.10.0" 1281 | } 1282 | }, 1283 | "node_modules/is-path-inside": { 1284 | "version": "3.0.3", 1285 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", 1286 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", 1287 | "dev": true, 1288 | "engines": { 1289 | "node": ">=8" 1290 | } 1291 | }, 1292 | "node_modules/isarray": { 1293 | "version": "1.0.0", 1294 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1295 | "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" 1296 | }, 1297 | "node_modules/isexe": { 1298 | "version": "2.0.0", 1299 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1300 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 1301 | "dev": true 1302 | }, 1303 | "node_modules/js-sdsl": { 1304 | "version": "4.2.0", 1305 | "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", 1306 | "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", 1307 | "dev": true, 1308 | "funding": { 1309 | "type": "opencollective", 1310 | "url": "https://opencollective.com/js-sdsl" 1311 | } 1312 | }, 1313 | "node_modules/js-yaml": { 1314 | "version": "4.1.0", 1315 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 1316 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 1317 | "dev": true, 1318 | "dependencies": { 1319 | "argparse": "^2.0.1" 1320 | }, 1321 | "bin": { 1322 | "js-yaml": "bin/js-yaml.js" 1323 | } 1324 | }, 1325 | "node_modules/json-schema-traverse": { 1326 | "version": "0.4.1", 1327 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 1328 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 1329 | "dev": true 1330 | }, 1331 | "node_modules/json-stable-stringify-without-jsonify": { 1332 | "version": "1.0.1", 1333 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 1334 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", 1335 | "dev": true 1336 | }, 1337 | "node_modules/lazystream": { 1338 | "version": "1.0.1", 1339 | "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", 1340 | "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", 1341 | "dependencies": { 1342 | "readable-stream": "^2.0.5" 1343 | }, 1344 | "engines": { 1345 | "node": ">= 0.6.3" 1346 | } 1347 | }, 1348 | "node_modules/lazystream/node_modules/readable-stream": { 1349 | "version": "2.3.7", 1350 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 1351 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 1352 | "dependencies": { 1353 | "core-util-is": "~1.0.0", 1354 | "inherits": "~2.0.3", 1355 | "isarray": "~1.0.0", 1356 | "process-nextick-args": "~2.0.0", 1357 | "safe-buffer": "~5.1.1", 1358 | "string_decoder": "~1.1.1", 1359 | "util-deprecate": "~1.0.1" 1360 | } 1361 | }, 1362 | "node_modules/lazystream/node_modules/safe-buffer": { 1363 | "version": "5.1.2", 1364 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1365 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1366 | }, 1367 | "node_modules/lazystream/node_modules/string_decoder": { 1368 | "version": "1.1.1", 1369 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1370 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1371 | "dependencies": { 1372 | "safe-buffer": "~5.1.0" 1373 | } 1374 | }, 1375 | "node_modules/levn": { 1376 | "version": "0.4.1", 1377 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 1378 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 1379 | "dev": true, 1380 | "dependencies": { 1381 | "prelude-ls": "^1.2.1", 1382 | "type-check": "~0.4.0" 1383 | }, 1384 | "engines": { 1385 | "node": ">= 0.8.0" 1386 | } 1387 | }, 1388 | "node_modules/linkify-it": { 1389 | "version": "4.0.1", 1390 | "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", 1391 | "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", 1392 | "dependencies": { 1393 | "uc.micro": "^1.0.1" 1394 | } 1395 | }, 1396 | "node_modules/locate-path": { 1397 | "version": "6.0.0", 1398 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 1399 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 1400 | "dev": true, 1401 | "dependencies": { 1402 | "p-locate": "^5.0.0" 1403 | }, 1404 | "engines": { 1405 | "node": ">=10" 1406 | }, 1407 | "funding": { 1408 | "url": "https://github.com/sponsors/sindresorhus" 1409 | } 1410 | }, 1411 | "node_modules/lodash.defaults": { 1412 | "version": "4.2.0", 1413 | "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", 1414 | "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" 1415 | }, 1416 | "node_modules/lodash.difference": { 1417 | "version": "4.5.0", 1418 | "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", 1419 | "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==" 1420 | }, 1421 | "node_modules/lodash.flatten": { 1422 | "version": "4.4.0", 1423 | "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", 1424 | "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" 1425 | }, 1426 | "node_modules/lodash.isplainobject": { 1427 | "version": "4.0.6", 1428 | "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", 1429 | "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" 1430 | }, 1431 | "node_modules/lodash.merge": { 1432 | "version": "4.6.2", 1433 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 1434 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 1435 | "dev": true 1436 | }, 1437 | "node_modules/lodash.union": { 1438 | "version": "4.6.0", 1439 | "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", 1440 | "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==" 1441 | }, 1442 | "node_modules/map-age-cleaner": { 1443 | "version": "0.2.0", 1444 | "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.2.0.tgz", 1445 | "integrity": "sha512-AvxTC6id0fzSf6OyNBTp1syyCuKO7nOJvHgYlhT0Qkkjvk40zZo+av3ayVgXlxnF/DxEzEfY9mMdd7FHsd+wKQ==", 1446 | "dependencies": { 1447 | "p-defer": "^1.0.0" 1448 | }, 1449 | "engines": { 1450 | "node": ">=7.6" 1451 | } 1452 | }, 1453 | "node_modules/markdown-it": { 1454 | "version": "13.0.1", 1455 | "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", 1456 | "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", 1457 | "dependencies": { 1458 | "argparse": "^2.0.1", 1459 | "entities": "~3.0.1", 1460 | "linkify-it": "^4.0.1", 1461 | "mdurl": "^1.0.1", 1462 | "uc.micro": "^1.0.5" 1463 | }, 1464 | "bin": { 1465 | "markdown-it": "bin/markdown-it.js" 1466 | } 1467 | }, 1468 | "node_modules/mdurl": { 1469 | "version": "1.0.1", 1470 | "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", 1471 | "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" 1472 | }, 1473 | "node_modules/minimatch": { 1474 | "version": "3.1.2", 1475 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1476 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1477 | "dependencies": { 1478 | "brace-expansion": "^1.1.7" 1479 | }, 1480 | "engines": { 1481 | "node": "*" 1482 | } 1483 | }, 1484 | "node_modules/ms": { 1485 | "version": "2.1.2", 1486 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1487 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1488 | "dev": true 1489 | }, 1490 | "node_modules/natural-compare": { 1491 | "version": "1.4.0", 1492 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 1493 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", 1494 | "dev": true 1495 | }, 1496 | "node_modules/normalize-path": { 1497 | "version": "3.0.0", 1498 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1499 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1500 | "engines": { 1501 | "node": ">=0.10.0" 1502 | } 1503 | }, 1504 | "node_modules/once": { 1505 | "version": "1.4.0", 1506 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1507 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 1508 | "dependencies": { 1509 | "wrappy": "1" 1510 | } 1511 | }, 1512 | "node_modules/optionator": { 1513 | "version": "0.9.1", 1514 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", 1515 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", 1516 | "dev": true, 1517 | "dependencies": { 1518 | "deep-is": "^0.1.3", 1519 | "fast-levenshtein": "^2.0.6", 1520 | "levn": "^0.4.1", 1521 | "prelude-ls": "^1.2.1", 1522 | "type-check": "^0.4.0", 1523 | "word-wrap": "^1.2.3" 1524 | }, 1525 | "engines": { 1526 | "node": ">= 0.8.0" 1527 | } 1528 | }, 1529 | "node_modules/p-defer": { 1530 | "version": "1.0.0", 1531 | "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", 1532 | "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", 1533 | "engines": { 1534 | "node": ">=4" 1535 | } 1536 | }, 1537 | "node_modules/p-limit": { 1538 | "version": "3.1.0", 1539 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 1540 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 1541 | "dev": true, 1542 | "dependencies": { 1543 | "yocto-queue": "^0.1.0" 1544 | }, 1545 | "engines": { 1546 | "node": ">=10" 1547 | }, 1548 | "funding": { 1549 | "url": "https://github.com/sponsors/sindresorhus" 1550 | } 1551 | }, 1552 | "node_modules/p-locate": { 1553 | "version": "5.0.0", 1554 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 1555 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 1556 | "dev": true, 1557 | "dependencies": { 1558 | "p-limit": "^3.0.2" 1559 | }, 1560 | "engines": { 1561 | "node": ">=10" 1562 | }, 1563 | "funding": { 1564 | "url": "https://github.com/sponsors/sindresorhus" 1565 | } 1566 | }, 1567 | "node_modules/parent-module": { 1568 | "version": "1.0.1", 1569 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 1570 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 1571 | "dev": true, 1572 | "dependencies": { 1573 | "callsites": "^3.0.0" 1574 | }, 1575 | "engines": { 1576 | "node": ">=6" 1577 | } 1578 | }, 1579 | "node_modules/path-exists": { 1580 | "version": "4.0.0", 1581 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 1582 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 1583 | "dev": true, 1584 | "engines": { 1585 | "node": ">=8" 1586 | } 1587 | }, 1588 | "node_modules/path-is-absolute": { 1589 | "version": "1.0.1", 1590 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1591 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 1592 | "engines": { 1593 | "node": ">=0.10.0" 1594 | } 1595 | }, 1596 | "node_modules/path-key": { 1597 | "version": "3.1.1", 1598 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1599 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1600 | "dev": true, 1601 | "engines": { 1602 | "node": ">=8" 1603 | } 1604 | }, 1605 | "node_modules/prelude-ls": { 1606 | "version": "1.2.1", 1607 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 1608 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 1609 | "dev": true, 1610 | "engines": { 1611 | "node": ">= 0.8.0" 1612 | } 1613 | }, 1614 | "node_modules/prettier": { 1615 | "version": "2.8.0", 1616 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz", 1617 | "integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==", 1618 | "dev": true, 1619 | "bin": { 1620 | "prettier": "bin-prettier.js" 1621 | }, 1622 | "engines": { 1623 | "node": ">=10.13.0" 1624 | }, 1625 | "funding": { 1626 | "url": "https://github.com/prettier/prettier?sponsor=1" 1627 | } 1628 | }, 1629 | "node_modules/process-nextick-args": { 1630 | "version": "2.0.1", 1631 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 1632 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 1633 | }, 1634 | "node_modules/punycode": { 1635 | "version": "2.1.1", 1636 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1637 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 1638 | "engines": { 1639 | "node": ">=6" 1640 | } 1641 | }, 1642 | "node_modules/queue-microtask": { 1643 | "version": "1.2.3", 1644 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 1645 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1646 | "dev": true, 1647 | "funding": [ 1648 | { 1649 | "type": "github", 1650 | "url": "https://github.com/sponsors/feross" 1651 | }, 1652 | { 1653 | "type": "patreon", 1654 | "url": "https://www.patreon.com/feross" 1655 | }, 1656 | { 1657 | "type": "consulting", 1658 | "url": "https://feross.org/support" 1659 | } 1660 | ] 1661 | }, 1662 | "node_modules/readable-stream": { 1663 | "version": "3.6.0", 1664 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 1665 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 1666 | "dependencies": { 1667 | "inherits": "^2.0.3", 1668 | "string_decoder": "^1.1.1", 1669 | "util-deprecate": "^1.0.1" 1670 | }, 1671 | "engines": { 1672 | "node": ">= 6" 1673 | } 1674 | }, 1675 | "node_modules/readdir-glob": { 1676 | "version": "1.1.2", 1677 | "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.2.tgz", 1678 | "integrity": "sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA==", 1679 | "dependencies": { 1680 | "minimatch": "^5.1.0" 1681 | } 1682 | }, 1683 | "node_modules/readdir-glob/node_modules/brace-expansion": { 1684 | "version": "2.0.1", 1685 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 1686 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 1687 | "dependencies": { 1688 | "balanced-match": "^1.0.0" 1689 | } 1690 | }, 1691 | "node_modules/readdir-glob/node_modules/minimatch": { 1692 | "version": "5.1.1", 1693 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", 1694 | "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", 1695 | "dependencies": { 1696 | "brace-expansion": "^2.0.1" 1697 | }, 1698 | "engines": { 1699 | "node": ">=10" 1700 | } 1701 | }, 1702 | "node_modules/regexpp": { 1703 | "version": "3.2.0", 1704 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", 1705 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", 1706 | "dev": true, 1707 | "engines": { 1708 | "node": ">=8" 1709 | }, 1710 | "funding": { 1711 | "url": "https://github.com/sponsors/mysticatea" 1712 | } 1713 | }, 1714 | "node_modules/resolve-from": { 1715 | "version": "4.0.0", 1716 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 1717 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 1718 | "dev": true, 1719 | "engines": { 1720 | "node": ">=4" 1721 | } 1722 | }, 1723 | "node_modules/reusify": { 1724 | "version": "1.0.4", 1725 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 1726 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 1727 | "dev": true, 1728 | "engines": { 1729 | "iojs": ">=1.0.0", 1730 | "node": ">=0.10.0" 1731 | } 1732 | }, 1733 | "node_modules/rimraf": { 1734 | "version": "3.0.2", 1735 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 1736 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 1737 | "dev": true, 1738 | "dependencies": { 1739 | "glob": "^7.1.3" 1740 | }, 1741 | "bin": { 1742 | "rimraf": "bin.js" 1743 | }, 1744 | "funding": { 1745 | "url": "https://github.com/sponsors/isaacs" 1746 | } 1747 | }, 1748 | "node_modules/run-parallel": { 1749 | "version": "1.2.0", 1750 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 1751 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 1752 | "dev": true, 1753 | "funding": [ 1754 | { 1755 | "type": "github", 1756 | "url": "https://github.com/sponsors/feross" 1757 | }, 1758 | { 1759 | "type": "patreon", 1760 | "url": "https://www.patreon.com/feross" 1761 | }, 1762 | { 1763 | "type": "consulting", 1764 | "url": "https://feross.org/support" 1765 | } 1766 | ], 1767 | "dependencies": { 1768 | "queue-microtask": "^1.2.2" 1769 | } 1770 | }, 1771 | "node_modules/safe-buffer": { 1772 | "version": "5.2.1", 1773 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1774 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 1775 | "funding": [ 1776 | { 1777 | "type": "github", 1778 | "url": "https://github.com/sponsors/feross" 1779 | }, 1780 | { 1781 | "type": "patreon", 1782 | "url": "https://www.patreon.com/feross" 1783 | }, 1784 | { 1785 | "type": "consulting", 1786 | "url": "https://feross.org/support" 1787 | } 1788 | ] 1789 | }, 1790 | "node_modules/shebang-command": { 1791 | "version": "2.0.0", 1792 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 1793 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1794 | "dev": true, 1795 | "dependencies": { 1796 | "shebang-regex": "^3.0.0" 1797 | }, 1798 | "engines": { 1799 | "node": ">=8" 1800 | } 1801 | }, 1802 | "node_modules/shebang-regex": { 1803 | "version": "3.0.0", 1804 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 1805 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 1806 | "dev": true, 1807 | "engines": { 1808 | "node": ">=8" 1809 | } 1810 | }, 1811 | "node_modules/string_decoder": { 1812 | "version": "1.3.0", 1813 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 1814 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 1815 | "dependencies": { 1816 | "safe-buffer": "~5.2.0" 1817 | } 1818 | }, 1819 | "node_modules/strip-ansi": { 1820 | "version": "6.0.1", 1821 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 1822 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1823 | "dev": true, 1824 | "dependencies": { 1825 | "ansi-regex": "^5.0.1" 1826 | }, 1827 | "engines": { 1828 | "node": ">=8" 1829 | } 1830 | }, 1831 | "node_modules/strip-json-comments": { 1832 | "version": "3.1.1", 1833 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 1834 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 1835 | "dev": true, 1836 | "engines": { 1837 | "node": ">=8" 1838 | }, 1839 | "funding": { 1840 | "url": "https://github.com/sponsors/sindresorhus" 1841 | } 1842 | }, 1843 | "node_modules/supports-color": { 1844 | "version": "7.2.0", 1845 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1846 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1847 | "dev": true, 1848 | "dependencies": { 1849 | "has-flag": "^4.0.0" 1850 | }, 1851 | "engines": { 1852 | "node": ">=8" 1853 | } 1854 | }, 1855 | "node_modules/tar-stream": { 1856 | "version": "2.2.0", 1857 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", 1858 | "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", 1859 | "dependencies": { 1860 | "bl": "^4.0.3", 1861 | "end-of-stream": "^1.4.1", 1862 | "fs-constants": "^1.0.0", 1863 | "inherits": "^2.0.3", 1864 | "readable-stream": "^3.1.1" 1865 | }, 1866 | "engines": { 1867 | "node": ">=6" 1868 | } 1869 | }, 1870 | "node_modules/text-table": { 1871 | "version": "0.2.0", 1872 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 1873 | "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", 1874 | "dev": true 1875 | }, 1876 | "node_modules/type-check": { 1877 | "version": "0.4.0", 1878 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 1879 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 1880 | "dev": true, 1881 | "dependencies": { 1882 | "prelude-ls": "^1.2.1" 1883 | }, 1884 | "engines": { 1885 | "node": ">= 0.8.0" 1886 | } 1887 | }, 1888 | "node_modules/type-fest": { 1889 | "version": "0.20.2", 1890 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 1891 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", 1892 | "dev": true, 1893 | "engines": { 1894 | "node": ">=10" 1895 | }, 1896 | "funding": { 1897 | "url": "https://github.com/sponsors/sindresorhus" 1898 | } 1899 | }, 1900 | "node_modules/uc.micro": { 1901 | "version": "1.0.6", 1902 | "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", 1903 | "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" 1904 | }, 1905 | "node_modules/uri-js": { 1906 | "version": "4.4.1", 1907 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 1908 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 1909 | "dev": true, 1910 | "dependencies": { 1911 | "punycode": "^2.1.0" 1912 | } 1913 | }, 1914 | "node_modules/util-deprecate": { 1915 | "version": "1.0.2", 1916 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1917 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 1918 | }, 1919 | "node_modules/uuid": { 1920 | "version": "9.0.0", 1921 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", 1922 | "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", 1923 | "bin": { 1924 | "uuid": "dist/bin/uuid" 1925 | } 1926 | }, 1927 | "node_modules/webextension-polyfill": { 1928 | "version": "0.10.0", 1929 | "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz", 1930 | "integrity": "sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==", 1931 | "dev": true 1932 | }, 1933 | "node_modules/which": { 1934 | "version": "2.0.2", 1935 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1936 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1937 | "dev": true, 1938 | "dependencies": { 1939 | "isexe": "^2.0.0" 1940 | }, 1941 | "bin": { 1942 | "node-which": "bin/node-which" 1943 | }, 1944 | "engines": { 1945 | "node": ">= 8" 1946 | } 1947 | }, 1948 | "node_modules/word-wrap": { 1949 | "version": "1.2.3", 1950 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 1951 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 1952 | "dev": true, 1953 | "engines": { 1954 | "node": ">=0.10.0" 1955 | } 1956 | }, 1957 | "node_modules/wrappy": { 1958 | "version": "1.0.2", 1959 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1960 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 1961 | }, 1962 | "node_modules/yocto-queue": { 1963 | "version": "0.1.0", 1964 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 1965 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 1966 | "dev": true, 1967 | "engines": { 1968 | "node": ">=10" 1969 | }, 1970 | "funding": { 1971 | "url": "https://github.com/sponsors/sindresorhus" 1972 | } 1973 | }, 1974 | "node_modules/zip-stream": { 1975 | "version": "4.1.0", 1976 | "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", 1977 | "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", 1978 | "dependencies": { 1979 | "archiver-utils": "^2.1.0", 1980 | "compress-commons": "^4.1.0", 1981 | "readable-stream": "^3.6.0" 1982 | }, 1983 | "engines": { 1984 | "node": ">= 10" 1985 | } 1986 | } 1987 | }, 1988 | "dependencies": { 1989 | "@esbuild/android-arm": { 1990 | "version": "0.15.17", 1991 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.17.tgz", 1992 | "integrity": "sha512-ay6Ken4u+JStjYmqIgh71jMT0bs/rXpCCDKaMfl78B20QYWJglT5P6Ejfm4hWf6Zi+uUWNe7ZmqakRs2BQYIeg==", 1993 | "optional": true 1994 | }, 1995 | "@esbuild/linux-loong64": { 1996 | "version": "0.15.17", 1997 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.17.tgz", 1998 | "integrity": "sha512-IA1O7f7qxw2DX8oqTpugHElr926phs7Rq8ULXleBMk4go5K05BU0mI8BfCkWcYAvcmVaMc13bv5W3LIUlU6Y9w==", 1999 | "optional": true 2000 | }, 2001 | "@eslint/eslintrc": { 2002 | "version": "1.3.3", 2003 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", 2004 | "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", 2005 | "dev": true, 2006 | "requires": { 2007 | "ajv": "^6.12.4", 2008 | "debug": "^4.3.2", 2009 | "espree": "^9.4.0", 2010 | "globals": "^13.15.0", 2011 | "ignore": "^5.2.0", 2012 | "import-fresh": "^3.2.1", 2013 | "js-yaml": "^4.1.0", 2014 | "minimatch": "^3.1.2", 2015 | "strip-json-comments": "^3.1.1" 2016 | } 2017 | }, 2018 | "@humanwhocodes/config-array": { 2019 | "version": "0.11.7", 2020 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", 2021 | "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", 2022 | "dev": true, 2023 | "requires": { 2024 | "@humanwhocodes/object-schema": "^1.2.1", 2025 | "debug": "^4.1.1", 2026 | "minimatch": "^3.0.5" 2027 | } 2028 | }, 2029 | "@humanwhocodes/module-importer": { 2030 | "version": "1.0.1", 2031 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 2032 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 2033 | "dev": true 2034 | }, 2035 | "@humanwhocodes/object-schema": { 2036 | "version": "1.2.1", 2037 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", 2038 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", 2039 | "dev": true 2040 | }, 2041 | "@nodelib/fs.scandir": { 2042 | "version": "2.1.5", 2043 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 2044 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 2045 | "dev": true, 2046 | "requires": { 2047 | "@nodelib/fs.stat": "2.0.5", 2048 | "run-parallel": "^1.1.9" 2049 | } 2050 | }, 2051 | "@nodelib/fs.stat": { 2052 | "version": "2.0.5", 2053 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 2054 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 2055 | "dev": true 2056 | }, 2057 | "@nodelib/fs.walk": { 2058 | "version": "1.2.8", 2059 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 2060 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 2061 | "dev": true, 2062 | "requires": { 2063 | "@nodelib/fs.scandir": "2.1.5", 2064 | "fastq": "^1.6.0" 2065 | } 2066 | }, 2067 | "acorn": { 2068 | "version": "8.8.1", 2069 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", 2070 | "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", 2071 | "dev": true 2072 | }, 2073 | "acorn-jsx": { 2074 | "version": "5.3.2", 2075 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 2076 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 2077 | "dev": true, 2078 | "requires": {} 2079 | }, 2080 | "ajv": { 2081 | "version": "6.12.6", 2082 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 2083 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 2084 | "dev": true, 2085 | "requires": { 2086 | "fast-deep-equal": "^3.1.1", 2087 | "fast-json-stable-stringify": "^2.0.0", 2088 | "json-schema-traverse": "^0.4.1", 2089 | "uri-js": "^4.2.2" 2090 | } 2091 | }, 2092 | "ansi-regex": { 2093 | "version": "5.0.1", 2094 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 2095 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 2096 | "dev": true 2097 | }, 2098 | "ansi-styles": { 2099 | "version": "4.3.0", 2100 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 2101 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 2102 | "dev": true, 2103 | "requires": { 2104 | "color-convert": "^2.0.1" 2105 | } 2106 | }, 2107 | "archiver": { 2108 | "version": "5.3.1", 2109 | "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", 2110 | "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", 2111 | "requires": { 2112 | "archiver-utils": "^2.1.0", 2113 | "async": "^3.2.3", 2114 | "buffer-crc32": "^0.2.1", 2115 | "readable-stream": "^3.6.0", 2116 | "readdir-glob": "^1.0.0", 2117 | "tar-stream": "^2.2.0", 2118 | "zip-stream": "^4.1.0" 2119 | } 2120 | }, 2121 | "archiver-utils": { 2122 | "version": "2.1.0", 2123 | "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", 2124 | "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", 2125 | "requires": { 2126 | "glob": "^7.1.4", 2127 | "graceful-fs": "^4.2.0", 2128 | "lazystream": "^1.0.0", 2129 | "lodash.defaults": "^4.2.0", 2130 | "lodash.difference": "^4.5.0", 2131 | "lodash.flatten": "^4.4.0", 2132 | "lodash.isplainobject": "^4.0.6", 2133 | "lodash.union": "^4.6.0", 2134 | "normalize-path": "^3.0.0", 2135 | "readable-stream": "^2.0.0" 2136 | }, 2137 | "dependencies": { 2138 | "readable-stream": { 2139 | "version": "2.3.7", 2140 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 2141 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 2142 | "requires": { 2143 | "core-util-is": "~1.0.0", 2144 | "inherits": "~2.0.3", 2145 | "isarray": "~1.0.0", 2146 | "process-nextick-args": "~2.0.0", 2147 | "safe-buffer": "~5.1.1", 2148 | "string_decoder": "~1.1.1", 2149 | "util-deprecate": "~1.0.1" 2150 | } 2151 | }, 2152 | "safe-buffer": { 2153 | "version": "5.1.2", 2154 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 2155 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 2156 | }, 2157 | "string_decoder": { 2158 | "version": "1.1.1", 2159 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 2160 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 2161 | "requires": { 2162 | "safe-buffer": "~5.1.0" 2163 | } 2164 | } 2165 | } 2166 | }, 2167 | "argparse": { 2168 | "version": "2.0.1", 2169 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 2170 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" 2171 | }, 2172 | "async": { 2173 | "version": "3.2.4", 2174 | "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", 2175 | "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" 2176 | }, 2177 | "balanced-match": { 2178 | "version": "1.0.2", 2179 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 2180 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 2181 | }, 2182 | "base64-js": { 2183 | "version": "1.5.1", 2184 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 2185 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 2186 | }, 2187 | "bl": { 2188 | "version": "4.1.0", 2189 | "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", 2190 | "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", 2191 | "requires": { 2192 | "buffer": "^5.5.0", 2193 | "inherits": "^2.0.4", 2194 | "readable-stream": "^3.4.0" 2195 | } 2196 | }, 2197 | "brace-expansion": { 2198 | "version": "1.1.11", 2199 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 2200 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 2201 | "requires": { 2202 | "balanced-match": "^1.0.0", 2203 | "concat-map": "0.0.1" 2204 | } 2205 | }, 2206 | "buffer": { 2207 | "version": "5.7.1", 2208 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 2209 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 2210 | "requires": { 2211 | "base64-js": "^1.3.1", 2212 | "ieee754": "^1.1.13" 2213 | } 2214 | }, 2215 | "buffer-crc32": { 2216 | "version": "0.2.13", 2217 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 2218 | "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" 2219 | }, 2220 | "callsites": { 2221 | "version": "3.1.0", 2222 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 2223 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 2224 | "dev": true 2225 | }, 2226 | "chalk": { 2227 | "version": "4.1.2", 2228 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 2229 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 2230 | "dev": true, 2231 | "requires": { 2232 | "ansi-styles": "^4.1.0", 2233 | "supports-color": "^7.1.0" 2234 | } 2235 | }, 2236 | "color-convert": { 2237 | "version": "2.0.1", 2238 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2239 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2240 | "dev": true, 2241 | "requires": { 2242 | "color-name": "~1.1.4" 2243 | } 2244 | }, 2245 | "color-name": { 2246 | "version": "1.1.4", 2247 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 2248 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 2249 | "dev": true 2250 | }, 2251 | "compress-commons": { 2252 | "version": "4.1.1", 2253 | "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", 2254 | "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", 2255 | "requires": { 2256 | "buffer-crc32": "^0.2.13", 2257 | "crc32-stream": "^4.0.2", 2258 | "normalize-path": "^3.0.0", 2259 | "readable-stream": "^3.6.0" 2260 | } 2261 | }, 2262 | "concat-map": { 2263 | "version": "0.0.1", 2264 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 2265 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 2266 | }, 2267 | "core-util-is": { 2268 | "version": "1.0.3", 2269 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", 2270 | "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" 2271 | }, 2272 | "crc-32": { 2273 | "version": "1.2.2", 2274 | "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", 2275 | "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" 2276 | }, 2277 | "crc32-stream": { 2278 | "version": "4.0.2", 2279 | "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", 2280 | "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", 2281 | "requires": { 2282 | "crc-32": "^1.2.0", 2283 | "readable-stream": "^3.4.0" 2284 | } 2285 | }, 2286 | "cross-spawn": { 2287 | "version": "7.0.3", 2288 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 2289 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 2290 | "dev": true, 2291 | "requires": { 2292 | "path-key": "^3.1.0", 2293 | "shebang-command": "^2.0.0", 2294 | "which": "^2.0.1" 2295 | } 2296 | }, 2297 | "debug": { 2298 | "version": "4.3.4", 2299 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 2300 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 2301 | "dev": true, 2302 | "requires": { 2303 | "ms": "2.1.2" 2304 | } 2305 | }, 2306 | "deep-is": { 2307 | "version": "0.1.4", 2308 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 2309 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 2310 | "dev": true 2311 | }, 2312 | "doctrine": { 2313 | "version": "3.0.0", 2314 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 2315 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 2316 | "dev": true, 2317 | "requires": { 2318 | "esutils": "^2.0.2" 2319 | } 2320 | }, 2321 | "end-of-stream": { 2322 | "version": "1.4.4", 2323 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 2324 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 2325 | "requires": { 2326 | "once": "^1.4.0" 2327 | } 2328 | }, 2329 | "entities": { 2330 | "version": "3.0.1", 2331 | "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", 2332 | "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==" 2333 | }, 2334 | "esbuild": { 2335 | "version": "0.15.17", 2336 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.17.tgz", 2337 | "integrity": "sha512-8MbkDX+kh0kaeYGd6klMbn1uTOXHoDw7UYMd1dQYA5cqBZivf5+pzfaXZSL1RNamJfXW/uWC5+9wX5ejDgpSqg==", 2338 | "requires": { 2339 | "@esbuild/android-arm": "0.15.17", 2340 | "@esbuild/linux-loong64": "0.15.17", 2341 | "esbuild-android-64": "0.15.17", 2342 | "esbuild-android-arm64": "0.15.17", 2343 | "esbuild-darwin-64": "0.15.17", 2344 | "esbuild-darwin-arm64": "0.15.17", 2345 | "esbuild-freebsd-64": "0.15.17", 2346 | "esbuild-freebsd-arm64": "0.15.17", 2347 | "esbuild-linux-32": "0.15.17", 2348 | "esbuild-linux-64": "0.15.17", 2349 | "esbuild-linux-arm": "0.15.17", 2350 | "esbuild-linux-arm64": "0.15.17", 2351 | "esbuild-linux-mips64le": "0.15.17", 2352 | "esbuild-linux-ppc64le": "0.15.17", 2353 | "esbuild-linux-riscv64": "0.15.17", 2354 | "esbuild-linux-s390x": "0.15.17", 2355 | "esbuild-netbsd-64": "0.15.17", 2356 | "esbuild-openbsd-64": "0.15.17", 2357 | "esbuild-sunos-64": "0.15.17", 2358 | "esbuild-windows-32": "0.15.17", 2359 | "esbuild-windows-64": "0.15.17", 2360 | "esbuild-windows-arm64": "0.15.17" 2361 | } 2362 | }, 2363 | "esbuild-android-64": { 2364 | "version": "0.15.17", 2365 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.17.tgz", 2366 | "integrity": "sha512-sUs6cKMAuAyWnJ/66ezWVr9SMRGFSwoMagxzdhXYggSA12zF7krXSuc1Y9JwxHq56wtv/gFAVo97TFm7RBc1Ig==", 2367 | "optional": true 2368 | }, 2369 | "esbuild-android-arm64": { 2370 | "version": "0.15.17", 2371 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.17.tgz", 2372 | "integrity": "sha512-RLZuCgIx1rexwxwsXTEW40ZiZzdBI1MBphwDRFyms/iiJGwLxqCH7v75iSJk5s6AF6oa80KC6r/RmzyaX/uJNg==", 2373 | "optional": true 2374 | }, 2375 | "esbuild-darwin-64": { 2376 | "version": "0.15.17", 2377 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.17.tgz", 2378 | "integrity": "sha512-+6RTCZ0hfAb+RqTNq1uVsBcP441yZOSi6CyV9BIBryGGVg8RM3Bc6L45e5b68jdRloddN92ekS50e4ElI+cHQA==", 2379 | "optional": true 2380 | }, 2381 | "esbuild-darwin-arm64": { 2382 | "version": "0.15.17", 2383 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.17.tgz", 2384 | "integrity": "sha512-ne4UWUHEKWLgYSE5SLr0/TBcID3k9LPnrzzRXzFLTfD+ygjnW1pMEgdMfmOKIe8jYBUYv8x/YoksriTdQb9r/Q==", 2385 | "optional": true 2386 | }, 2387 | "esbuild-freebsd-64": { 2388 | "version": "0.15.17", 2389 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.17.tgz", 2390 | "integrity": "sha512-6my3DrwLOe1zhR8UzVRKeo9AFM9XkApJBcx0IE+qKaEbKKBxYAiDBtd2ZMtRA2agqIwRP0kuHofTiDEzpfA+ZA==", 2391 | "optional": true 2392 | }, 2393 | "esbuild-freebsd-arm64": { 2394 | "version": "0.15.17", 2395 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.17.tgz", 2396 | "integrity": "sha512-LQL7+f+bz+xmAu1FcDBB304Wm2CjONUcOeF4f3TqG7wYXMxjjYQZBFv+0OVapNXyYrM2vy9JMDbps+SheuOnHg==", 2397 | "optional": true 2398 | }, 2399 | "esbuild-linux-32": { 2400 | "version": "0.15.17", 2401 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.17.tgz", 2402 | "integrity": "sha512-7E9vZXMZhINQ4/KcxBxioJ2ao5gbXJ6Pa4/LEUd102g3gadSalpg0LrityFgw7ao6qmjcNWwdEYrXaDnOzyyYA==", 2403 | "optional": true 2404 | }, 2405 | "esbuild-linux-64": { 2406 | "version": "0.15.17", 2407 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.17.tgz", 2408 | "integrity": "sha512-TnedHtFQSUVlc0J0D4ZMMalYaQ0Zbt7HSwGy4sav7BlXVqDVc/rchJ/a9dathK51apzLgRyXQMseLf6bkloaSQ==", 2409 | "optional": true 2410 | }, 2411 | "esbuild-linux-arm": { 2412 | "version": "0.15.17", 2413 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.17.tgz", 2414 | "integrity": "sha512-+ugCmBTTDIlh+UuC7E/GvyJqjGTX2pNOA+g3isG78aYcfgswrHjvstTtIfljaU95AS30qrVNLgI5h/8TsRWTrg==", 2415 | "optional": true 2416 | }, 2417 | "esbuild-linux-arm64": { 2418 | "version": "0.15.17", 2419 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.17.tgz", 2420 | "integrity": "sha512-oupYfh0lTHg+F/2ZoTNrioB+KLd6x0Zlhjz2Oa1jhl8wCGkNvwe25RytR2/SGPYpoNVcvCeoayWQRwwRuWGgfQ==", 2421 | "optional": true 2422 | }, 2423 | "esbuild-linux-mips64le": { 2424 | "version": "0.15.17", 2425 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.17.tgz", 2426 | "integrity": "sha512-aUVyHwUXJF1hi9jsAT+At+cBxZh2yGICi/e757N6d/zzOD+eVK3PKQj68tAvIflx6/ZpnuCTKol1GpgGYrzERg==", 2427 | "optional": true 2428 | }, 2429 | "esbuild-linux-ppc64le": { 2430 | "version": "0.15.17", 2431 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.17.tgz", 2432 | "integrity": "sha512-i7789iFTLfLccHPNADCbaZPx9CuQblsBqv2j4XqIBN1jKIJbpQ8iqCkWoHep4PLqqKLtBLtTWh919GsrFGdeJA==", 2433 | "optional": true 2434 | }, 2435 | "esbuild-linux-riscv64": { 2436 | "version": "0.15.17", 2437 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.17.tgz", 2438 | "integrity": "sha512-fEQ/8tnZ2sDniBlPfTXEdg+0OP1olps96HvYdwl8ywJdAlD7AK761EL3lRbRdfMHNOId2N6+CVca43/Fiu/0AQ==", 2439 | "optional": true 2440 | }, 2441 | "esbuild-linux-s390x": { 2442 | "version": "0.15.17", 2443 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.17.tgz", 2444 | "integrity": "sha512-ZBQekST4gYgTKHAvUJtR1kFFulHTDlRZSE8T0wRQCmQqydNkC1teWxlR31xS6MZevjZGfa7OMVJD24bBhei/2Q==", 2445 | "optional": true 2446 | }, 2447 | "esbuild-netbsd-64": { 2448 | "version": "0.15.17", 2449 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.17.tgz", 2450 | "integrity": "sha512-onNBFaZVN9GzGJMm3aZJJv74n/Q8FjW20G9OfSDhHjvamqJ5vbd42hNk6igQX4lgBCHTZvvBlWDJAMy+tbJAAw==", 2451 | "optional": true 2452 | }, 2453 | "esbuild-openbsd-64": { 2454 | "version": "0.15.17", 2455 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.17.tgz", 2456 | "integrity": "sha512-QFxHmvjaRrmTCvH/A3EmzqKUSZHRQ7/pbrJeATsb/Q6qckCeL9e7zg/1A3HiZqDXeBUV3yNeBeV1GJBjY6yVyA==", 2457 | "optional": true 2458 | }, 2459 | "esbuild-sunos-64": { 2460 | "version": "0.15.17", 2461 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.17.tgz", 2462 | "integrity": "sha512-7dHZA8Kc6U8rBTKojJatXtzHTUKJ3CRYimvOGIQQ1yUDOqGx/zZkCH/HkEi3Zg5SWyDj/57E5e1YJPo4ySSw/w==", 2463 | "optional": true 2464 | }, 2465 | "esbuild-windows-32": { 2466 | "version": "0.15.17", 2467 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.17.tgz", 2468 | "integrity": "sha512-yDrNrwQ/0k4N3OZItZ6k6YnBUch8+of06YRYc3hFI8VDm7X1rkNZwhttZNAzF6+TtbnK4cIz7H2/EwdSoaGZ3g==", 2469 | "optional": true 2470 | }, 2471 | "esbuild-windows-64": { 2472 | "version": "0.15.17", 2473 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.17.tgz", 2474 | "integrity": "sha512-jPnXvB4zMMToNPpCBdt+OEQiYFVs9wlQ5G8vMoJkrYJBp1aEt070MRpBFa6pfBFrgXquqgUiNAohMcTdy+JVFg==", 2475 | "optional": true 2476 | }, 2477 | "esbuild-windows-arm64": { 2478 | "version": "0.15.17", 2479 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.17.tgz", 2480 | "integrity": "sha512-I5QeSsz0X66V8rxVhmw03Wzn8Tz63H3L9GrsA7C5wvBXMk3qahLWuEL+l7SZ2DleKkFeZZMu1dPxOak9f1TZ4A==", 2481 | "optional": true 2482 | }, 2483 | "escape-string-regexp": { 2484 | "version": "4.0.0", 2485 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 2486 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 2487 | "dev": true 2488 | }, 2489 | "eslint": { 2490 | "version": "8.29.0", 2491 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz", 2492 | "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==", 2493 | "dev": true, 2494 | "requires": { 2495 | "@eslint/eslintrc": "^1.3.3", 2496 | "@humanwhocodes/config-array": "^0.11.6", 2497 | "@humanwhocodes/module-importer": "^1.0.1", 2498 | "@nodelib/fs.walk": "^1.2.8", 2499 | "ajv": "^6.10.0", 2500 | "chalk": "^4.0.0", 2501 | "cross-spawn": "^7.0.2", 2502 | "debug": "^4.3.2", 2503 | "doctrine": "^3.0.0", 2504 | "escape-string-regexp": "^4.0.0", 2505 | "eslint-scope": "^7.1.1", 2506 | "eslint-utils": "^3.0.0", 2507 | "eslint-visitor-keys": "^3.3.0", 2508 | "espree": "^9.4.0", 2509 | "esquery": "^1.4.0", 2510 | "esutils": "^2.0.2", 2511 | "fast-deep-equal": "^3.1.3", 2512 | "file-entry-cache": "^6.0.1", 2513 | "find-up": "^5.0.0", 2514 | "glob-parent": "^6.0.2", 2515 | "globals": "^13.15.0", 2516 | "grapheme-splitter": "^1.0.4", 2517 | "ignore": "^5.2.0", 2518 | "import-fresh": "^3.0.0", 2519 | "imurmurhash": "^0.1.4", 2520 | "is-glob": "^4.0.0", 2521 | "is-path-inside": "^3.0.3", 2522 | "js-sdsl": "^4.1.4", 2523 | "js-yaml": "^4.1.0", 2524 | "json-stable-stringify-without-jsonify": "^1.0.1", 2525 | "levn": "^0.4.1", 2526 | "lodash.merge": "^4.6.2", 2527 | "minimatch": "^3.1.2", 2528 | "natural-compare": "^1.4.0", 2529 | "optionator": "^0.9.1", 2530 | "regexpp": "^3.2.0", 2531 | "strip-ansi": "^6.0.1", 2532 | "strip-json-comments": "^3.1.0", 2533 | "text-table": "^0.2.0" 2534 | } 2535 | }, 2536 | "eslint-scope": { 2537 | "version": "7.1.1", 2538 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", 2539 | "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", 2540 | "dev": true, 2541 | "requires": { 2542 | "esrecurse": "^4.3.0", 2543 | "estraverse": "^5.2.0" 2544 | } 2545 | }, 2546 | "eslint-utils": { 2547 | "version": "3.0.0", 2548 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", 2549 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", 2550 | "dev": true, 2551 | "requires": { 2552 | "eslint-visitor-keys": "^2.0.0" 2553 | }, 2554 | "dependencies": { 2555 | "eslint-visitor-keys": { 2556 | "version": "2.1.0", 2557 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", 2558 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", 2559 | "dev": true 2560 | } 2561 | } 2562 | }, 2563 | "eslint-visitor-keys": { 2564 | "version": "3.3.0", 2565 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", 2566 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", 2567 | "dev": true 2568 | }, 2569 | "espree": { 2570 | "version": "9.4.1", 2571 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", 2572 | "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", 2573 | "dev": true, 2574 | "requires": { 2575 | "acorn": "^8.8.0", 2576 | "acorn-jsx": "^5.3.2", 2577 | "eslint-visitor-keys": "^3.3.0" 2578 | } 2579 | }, 2580 | "esquery": { 2581 | "version": "1.4.0", 2582 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", 2583 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", 2584 | "dev": true, 2585 | "requires": { 2586 | "estraverse": "^5.1.0" 2587 | } 2588 | }, 2589 | "esrecurse": { 2590 | "version": "4.3.0", 2591 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 2592 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 2593 | "dev": true, 2594 | "requires": { 2595 | "estraverse": "^5.2.0" 2596 | } 2597 | }, 2598 | "estraverse": { 2599 | "version": "5.3.0", 2600 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 2601 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 2602 | "dev": true 2603 | }, 2604 | "esutils": { 2605 | "version": "2.0.3", 2606 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 2607 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 2608 | "dev": true 2609 | }, 2610 | "eventsource-parser": { 2611 | "version": "0.0.5", 2612 | "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-0.0.5.tgz", 2613 | "integrity": "sha512-BAq82bC3ZW9fPYYZlofXBOAfbpmDzXIOsj+GOehQwgTUYsQZ6HtHs6zuRtge7Ph8OhS6lNH1kJF8q9dj17RcmA==" 2614 | }, 2615 | "expiry-map": { 2616 | "version": "2.0.0", 2617 | "resolved": "https://registry.npmjs.org/expiry-map/-/expiry-map-2.0.0.tgz", 2618 | "integrity": "sha512-K1I5wJe2fiqjyUZf/xhxwTpaopw3F+19DsO7Oggl20+3SVTXDIevVRJav0aBMfposQdkl2E4+gnuOKd3j2X0sA==", 2619 | "requires": { 2620 | "map-age-cleaner": "^0.2.0" 2621 | } 2622 | }, 2623 | "fast-deep-equal": { 2624 | "version": "3.1.3", 2625 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 2626 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 2627 | "dev": true 2628 | }, 2629 | "fast-json-stable-stringify": { 2630 | "version": "2.1.0", 2631 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 2632 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 2633 | "dev": true 2634 | }, 2635 | "fast-levenshtein": { 2636 | "version": "2.0.6", 2637 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 2638 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 2639 | "dev": true 2640 | }, 2641 | "fastq": { 2642 | "version": "1.14.0", 2643 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", 2644 | "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", 2645 | "dev": true, 2646 | "requires": { 2647 | "reusify": "^1.0.4" 2648 | } 2649 | }, 2650 | "file-entry-cache": { 2651 | "version": "6.0.1", 2652 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", 2653 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", 2654 | "dev": true, 2655 | "requires": { 2656 | "flat-cache": "^3.0.4" 2657 | } 2658 | }, 2659 | "find-up": { 2660 | "version": "5.0.0", 2661 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 2662 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 2663 | "dev": true, 2664 | "requires": { 2665 | "locate-path": "^6.0.0", 2666 | "path-exists": "^4.0.0" 2667 | } 2668 | }, 2669 | "flat-cache": { 2670 | "version": "3.0.4", 2671 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", 2672 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", 2673 | "dev": true, 2674 | "requires": { 2675 | "flatted": "^3.1.0", 2676 | "rimraf": "^3.0.2" 2677 | } 2678 | }, 2679 | "flatted": { 2680 | "version": "3.2.7", 2681 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", 2682 | "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", 2683 | "dev": true 2684 | }, 2685 | "fs-constants": { 2686 | "version": "1.0.0", 2687 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 2688 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" 2689 | }, 2690 | "fs.realpath": { 2691 | "version": "1.0.0", 2692 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 2693 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" 2694 | }, 2695 | "glob": { 2696 | "version": "7.2.3", 2697 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 2698 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 2699 | "requires": { 2700 | "fs.realpath": "^1.0.0", 2701 | "inflight": "^1.0.4", 2702 | "inherits": "2", 2703 | "minimatch": "^3.1.1", 2704 | "once": "^1.3.0", 2705 | "path-is-absolute": "^1.0.0" 2706 | } 2707 | }, 2708 | "glob-parent": { 2709 | "version": "6.0.2", 2710 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 2711 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 2712 | "dev": true, 2713 | "requires": { 2714 | "is-glob": "^4.0.3" 2715 | } 2716 | }, 2717 | "globals": { 2718 | "version": "13.18.0", 2719 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", 2720 | "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", 2721 | "dev": true, 2722 | "requires": { 2723 | "type-fest": "^0.20.2" 2724 | } 2725 | }, 2726 | "graceful-fs": { 2727 | "version": "4.2.10", 2728 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", 2729 | "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" 2730 | }, 2731 | "grapheme-splitter": { 2732 | "version": "1.0.4", 2733 | "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", 2734 | "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", 2735 | "dev": true 2736 | }, 2737 | "has-flag": { 2738 | "version": "4.0.0", 2739 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 2740 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 2741 | "dev": true 2742 | }, 2743 | "ieee754": { 2744 | "version": "1.2.1", 2745 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 2746 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" 2747 | }, 2748 | "ignore": { 2749 | "version": "5.2.1", 2750 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", 2751 | "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", 2752 | "dev": true 2753 | }, 2754 | "import-fresh": { 2755 | "version": "3.3.0", 2756 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 2757 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 2758 | "dev": true, 2759 | "requires": { 2760 | "parent-module": "^1.0.0", 2761 | "resolve-from": "^4.0.0" 2762 | } 2763 | }, 2764 | "imurmurhash": { 2765 | "version": "0.1.4", 2766 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 2767 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 2768 | "dev": true 2769 | }, 2770 | "inflight": { 2771 | "version": "1.0.6", 2772 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2773 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 2774 | "requires": { 2775 | "once": "^1.3.0", 2776 | "wrappy": "1" 2777 | } 2778 | }, 2779 | "inherits": { 2780 | "version": "2.0.4", 2781 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 2782 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 2783 | }, 2784 | "is-extglob": { 2785 | "version": "2.1.1", 2786 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 2787 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 2788 | "dev": true 2789 | }, 2790 | "is-glob": { 2791 | "version": "4.0.3", 2792 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 2793 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 2794 | "dev": true, 2795 | "requires": { 2796 | "is-extglob": "^2.1.1" 2797 | } 2798 | }, 2799 | "is-path-inside": { 2800 | "version": "3.0.3", 2801 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", 2802 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", 2803 | "dev": true 2804 | }, 2805 | "isarray": { 2806 | "version": "1.0.0", 2807 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2808 | "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" 2809 | }, 2810 | "isexe": { 2811 | "version": "2.0.0", 2812 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2813 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 2814 | "dev": true 2815 | }, 2816 | "js-sdsl": { 2817 | "version": "4.2.0", 2818 | "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", 2819 | "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", 2820 | "dev": true 2821 | }, 2822 | "js-yaml": { 2823 | "version": "4.1.0", 2824 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 2825 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 2826 | "dev": true, 2827 | "requires": { 2828 | "argparse": "^2.0.1" 2829 | } 2830 | }, 2831 | "json-schema-traverse": { 2832 | "version": "0.4.1", 2833 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 2834 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 2835 | "dev": true 2836 | }, 2837 | "json-stable-stringify-without-jsonify": { 2838 | "version": "1.0.1", 2839 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 2840 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", 2841 | "dev": true 2842 | }, 2843 | "lazystream": { 2844 | "version": "1.0.1", 2845 | "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", 2846 | "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", 2847 | "requires": { 2848 | "readable-stream": "^2.0.5" 2849 | }, 2850 | "dependencies": { 2851 | "readable-stream": { 2852 | "version": "2.3.7", 2853 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 2854 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 2855 | "requires": { 2856 | "core-util-is": "~1.0.0", 2857 | "inherits": "~2.0.3", 2858 | "isarray": "~1.0.0", 2859 | "process-nextick-args": "~2.0.0", 2860 | "safe-buffer": "~5.1.1", 2861 | "string_decoder": "~1.1.1", 2862 | "util-deprecate": "~1.0.1" 2863 | } 2864 | }, 2865 | "safe-buffer": { 2866 | "version": "5.1.2", 2867 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 2868 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 2869 | }, 2870 | "string_decoder": { 2871 | "version": "1.1.1", 2872 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 2873 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 2874 | "requires": { 2875 | "safe-buffer": "~5.1.0" 2876 | } 2877 | } 2878 | } 2879 | }, 2880 | "levn": { 2881 | "version": "0.4.1", 2882 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 2883 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 2884 | "dev": true, 2885 | "requires": { 2886 | "prelude-ls": "^1.2.1", 2887 | "type-check": "~0.4.0" 2888 | } 2889 | }, 2890 | "linkify-it": { 2891 | "version": "4.0.1", 2892 | "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", 2893 | "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", 2894 | "requires": { 2895 | "uc.micro": "^1.0.1" 2896 | } 2897 | }, 2898 | "locate-path": { 2899 | "version": "6.0.0", 2900 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 2901 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 2902 | "dev": true, 2903 | "requires": { 2904 | "p-locate": "^5.0.0" 2905 | } 2906 | }, 2907 | "lodash.defaults": { 2908 | "version": "4.2.0", 2909 | "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", 2910 | "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" 2911 | }, 2912 | "lodash.difference": { 2913 | "version": "4.5.0", 2914 | "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", 2915 | "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==" 2916 | }, 2917 | "lodash.flatten": { 2918 | "version": "4.4.0", 2919 | "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", 2920 | "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" 2921 | }, 2922 | "lodash.isplainobject": { 2923 | "version": "4.0.6", 2924 | "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", 2925 | "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" 2926 | }, 2927 | "lodash.merge": { 2928 | "version": "4.6.2", 2929 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 2930 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 2931 | "dev": true 2932 | }, 2933 | "lodash.union": { 2934 | "version": "4.6.0", 2935 | "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", 2936 | "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==" 2937 | }, 2938 | "map-age-cleaner": { 2939 | "version": "0.2.0", 2940 | "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.2.0.tgz", 2941 | "integrity": "sha512-AvxTC6id0fzSf6OyNBTp1syyCuKO7nOJvHgYlhT0Qkkjvk40zZo+av3ayVgXlxnF/DxEzEfY9mMdd7FHsd+wKQ==", 2942 | "requires": { 2943 | "p-defer": "^1.0.0" 2944 | } 2945 | }, 2946 | "markdown-it": { 2947 | "version": "13.0.1", 2948 | "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", 2949 | "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", 2950 | "requires": { 2951 | "argparse": "^2.0.1", 2952 | "entities": "~3.0.1", 2953 | "linkify-it": "^4.0.1", 2954 | "mdurl": "^1.0.1", 2955 | "uc.micro": "^1.0.5" 2956 | } 2957 | }, 2958 | "mdurl": { 2959 | "version": "1.0.1", 2960 | "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", 2961 | "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" 2962 | }, 2963 | "minimatch": { 2964 | "version": "3.1.2", 2965 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 2966 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 2967 | "requires": { 2968 | "brace-expansion": "^1.1.7" 2969 | } 2970 | }, 2971 | "ms": { 2972 | "version": "2.1.2", 2973 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 2974 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 2975 | "dev": true 2976 | }, 2977 | "natural-compare": { 2978 | "version": "1.4.0", 2979 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 2980 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", 2981 | "dev": true 2982 | }, 2983 | "normalize-path": { 2984 | "version": "3.0.0", 2985 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 2986 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" 2987 | }, 2988 | "once": { 2989 | "version": "1.4.0", 2990 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2991 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 2992 | "requires": { 2993 | "wrappy": "1" 2994 | } 2995 | }, 2996 | "optionator": { 2997 | "version": "0.9.1", 2998 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", 2999 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", 3000 | "dev": true, 3001 | "requires": { 3002 | "deep-is": "^0.1.3", 3003 | "fast-levenshtein": "^2.0.6", 3004 | "levn": "^0.4.1", 3005 | "prelude-ls": "^1.2.1", 3006 | "type-check": "^0.4.0", 3007 | "word-wrap": "^1.2.3" 3008 | } 3009 | }, 3010 | "p-defer": { 3011 | "version": "1.0.0", 3012 | "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", 3013 | "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==" 3014 | }, 3015 | "p-limit": { 3016 | "version": "3.1.0", 3017 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 3018 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 3019 | "dev": true, 3020 | "requires": { 3021 | "yocto-queue": "^0.1.0" 3022 | } 3023 | }, 3024 | "p-locate": { 3025 | "version": "5.0.0", 3026 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 3027 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 3028 | "dev": true, 3029 | "requires": { 3030 | "p-limit": "^3.0.2" 3031 | } 3032 | }, 3033 | "parent-module": { 3034 | "version": "1.0.1", 3035 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 3036 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 3037 | "dev": true, 3038 | "requires": { 3039 | "callsites": "^3.0.0" 3040 | } 3041 | }, 3042 | "path-exists": { 3043 | "version": "4.0.0", 3044 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 3045 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 3046 | "dev": true 3047 | }, 3048 | "path-is-absolute": { 3049 | "version": "1.0.1", 3050 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 3051 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" 3052 | }, 3053 | "path-key": { 3054 | "version": "3.1.1", 3055 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 3056 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 3057 | "dev": true 3058 | }, 3059 | "prelude-ls": { 3060 | "version": "1.2.1", 3061 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 3062 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 3063 | "dev": true 3064 | }, 3065 | "prettier": { 3066 | "version": "2.8.0", 3067 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz", 3068 | "integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==", 3069 | "dev": true 3070 | }, 3071 | "process-nextick-args": { 3072 | "version": "2.0.1", 3073 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 3074 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 3075 | }, 3076 | "punycode": { 3077 | "version": "2.1.1", 3078 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 3079 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 3080 | }, 3081 | "queue-microtask": { 3082 | "version": "1.2.3", 3083 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 3084 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 3085 | "dev": true 3086 | }, 3087 | "readable-stream": { 3088 | "version": "3.6.0", 3089 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 3090 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 3091 | "requires": { 3092 | "inherits": "^2.0.3", 3093 | "string_decoder": "^1.1.1", 3094 | "util-deprecate": "^1.0.1" 3095 | } 3096 | }, 3097 | "readdir-glob": { 3098 | "version": "1.1.2", 3099 | "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.2.tgz", 3100 | "integrity": "sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA==", 3101 | "requires": { 3102 | "minimatch": "^5.1.0" 3103 | }, 3104 | "dependencies": { 3105 | "brace-expansion": { 3106 | "version": "2.0.1", 3107 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 3108 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 3109 | "requires": { 3110 | "balanced-match": "^1.0.0" 3111 | } 3112 | }, 3113 | "minimatch": { 3114 | "version": "5.1.1", 3115 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", 3116 | "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", 3117 | "requires": { 3118 | "brace-expansion": "^2.0.1" 3119 | } 3120 | } 3121 | } 3122 | }, 3123 | "regexpp": { 3124 | "version": "3.2.0", 3125 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", 3126 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", 3127 | "dev": true 3128 | }, 3129 | "resolve-from": { 3130 | "version": "4.0.0", 3131 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 3132 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 3133 | "dev": true 3134 | }, 3135 | "reusify": { 3136 | "version": "1.0.4", 3137 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 3138 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 3139 | "dev": true 3140 | }, 3141 | "rimraf": { 3142 | "version": "3.0.2", 3143 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 3144 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 3145 | "dev": true, 3146 | "requires": { 3147 | "glob": "^7.1.3" 3148 | } 3149 | }, 3150 | "run-parallel": { 3151 | "version": "1.2.0", 3152 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 3153 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 3154 | "dev": true, 3155 | "requires": { 3156 | "queue-microtask": "^1.2.2" 3157 | } 3158 | }, 3159 | "safe-buffer": { 3160 | "version": "5.2.1", 3161 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 3162 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 3163 | }, 3164 | "shebang-command": { 3165 | "version": "2.0.0", 3166 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 3167 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 3168 | "dev": true, 3169 | "requires": { 3170 | "shebang-regex": "^3.0.0" 3171 | } 3172 | }, 3173 | "shebang-regex": { 3174 | "version": "3.0.0", 3175 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 3176 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 3177 | "dev": true 3178 | }, 3179 | "string_decoder": { 3180 | "version": "1.3.0", 3181 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 3182 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 3183 | "requires": { 3184 | "safe-buffer": "~5.2.0" 3185 | } 3186 | }, 3187 | "strip-ansi": { 3188 | "version": "6.0.1", 3189 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 3190 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 3191 | "dev": true, 3192 | "requires": { 3193 | "ansi-regex": "^5.0.1" 3194 | } 3195 | }, 3196 | "strip-json-comments": { 3197 | "version": "3.1.1", 3198 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 3199 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 3200 | "dev": true 3201 | }, 3202 | "supports-color": { 3203 | "version": "7.2.0", 3204 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 3205 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 3206 | "dev": true, 3207 | "requires": { 3208 | "has-flag": "^4.0.0" 3209 | } 3210 | }, 3211 | "tar-stream": { 3212 | "version": "2.2.0", 3213 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", 3214 | "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", 3215 | "requires": { 3216 | "bl": "^4.0.3", 3217 | "end-of-stream": "^1.4.1", 3218 | "fs-constants": "^1.0.0", 3219 | "inherits": "^2.0.3", 3220 | "readable-stream": "^3.1.1" 3221 | } 3222 | }, 3223 | "text-table": { 3224 | "version": "0.2.0", 3225 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 3226 | "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", 3227 | "dev": true 3228 | }, 3229 | "type-check": { 3230 | "version": "0.4.0", 3231 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 3232 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 3233 | "dev": true, 3234 | "requires": { 3235 | "prelude-ls": "^1.2.1" 3236 | } 3237 | }, 3238 | "type-fest": { 3239 | "version": "0.20.2", 3240 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 3241 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", 3242 | "dev": true 3243 | }, 3244 | "uc.micro": { 3245 | "version": "1.0.6", 3246 | "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", 3247 | "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" 3248 | }, 3249 | "uri-js": { 3250 | "version": "4.4.1", 3251 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 3252 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 3253 | "dev": true, 3254 | "requires": { 3255 | "punycode": "^2.1.0" 3256 | } 3257 | }, 3258 | "util-deprecate": { 3259 | "version": "1.0.2", 3260 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 3261 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 3262 | }, 3263 | "uuid": { 3264 | "version": "9.0.0", 3265 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", 3266 | "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" 3267 | }, 3268 | "webextension-polyfill": { 3269 | "version": "0.10.0", 3270 | "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz", 3271 | "integrity": "sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==", 3272 | "dev": true 3273 | }, 3274 | "which": { 3275 | "version": "2.0.2", 3276 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 3277 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 3278 | "dev": true, 3279 | "requires": { 3280 | "isexe": "^2.0.0" 3281 | } 3282 | }, 3283 | "word-wrap": { 3284 | "version": "1.2.3", 3285 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 3286 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 3287 | "dev": true 3288 | }, 3289 | "wrappy": { 3290 | "version": "1.0.2", 3291 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 3292 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 3293 | }, 3294 | "yocto-queue": { 3295 | "version": "0.1.0", 3296 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 3297 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 3298 | "dev": true 3299 | }, 3300 | "zip-stream": { 3301 | "version": "4.1.0", 3302 | "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", 3303 | "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", 3304 | "requires": { 3305 | "archiver-utils": "^2.1.0", 3306 | "compress-commons": "^4.1.0", 3307 | "readable-stream": "^3.6.0" 3308 | } 3309 | } 3310 | } 3311 | } 3312 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "chat-gpt-google-extension", 3 | "version": "1.0.0", 4 | "main": "background.js", 5 | "keywords": [], 6 | "author": "wong2", 7 | "license": "ISC", 8 | "scripts": { 9 | "build": "node build.mjs", 10 | "lint": "eslint --ext .js,.mjs .", 11 | "lint:fix": "eslint --ext .js,.mjs . --fix" 12 | }, 13 | "dependencies": { 14 | "archiver": "^5.3.1", 15 | "esbuild": "^0.15.17", 16 | "eventsource-parser": "^0.0.5", 17 | "expiry-map": "^2.0.0", 18 | "markdown-it": "^13.0.1", 19 | "punycode": "^2.1.1", 20 | "uuid": "^9.0.0" 21 | }, 22 | "devDependencies": { 23 | "eslint": "^8.29.0", 24 | "prettier": "^2.8.0", 25 | "webextension-polyfill": "^0.10.0" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /readme.MD: -------------------------------------------------------------------------------- 1 | # ChatGPT for Stackoverflow 2 | 3 | A browser extension to display ChatGPT response alongside Stackoverflow questions. 4 | 5 | 6 | 7 |  8 | 9 | ## Installation 10 | 11 | ### Install to Chrome/Edge 12 | 13 | #### Local Install 14 | 15 | 1. Download `chromium.zip` from [Releases](https://github.com/chinmaykhamkar/chat-gpt-stackoverflow/releases/tag/latest). 16 | 2. Unzip the file. 17 | 3. In Chrome go to the extensions page (`chrome://extensions` or `edge://extensions`). 18 | 4. Enable Developer Mode. 19 | 5. Click on Load unpacked and select the unzipped folder (do not delete the folder afterwards). 20 | 6. You are set. Search anything on stackoverflow. 21 | 7. If you are new user, you might need to signup to chatGPT. 22 | 23 | ### Install to Firefox 24 | #### Local Install 25 | 26 | 1. Download `firefox.zip` from [Releases](https://github.com/chinmaykhamkar/chat-gpt-stackoverflow/releases/tag/latest). 27 | 2. Unzip the file. 28 | 3. Go to `about:debugging`, click "This Firefox" on the sidebar. 29 | 4. Click "Load Temporary Add-on" button, then select any file in the unzipped folder. 30 | 31 | ## Build from source 32 | 33 | 1. Clone the repo 34 | 2. Install dependencies with `npm install` 35 | 3. After that run `npm run build` 36 | 4. A build folder would be created. 37 | 5. After this step follow the above local installation process for the respescitve browser. 38 | 6. The `chromium` and `firefox` folders would already be created inside the build folder so no need to unzip any files. 39 | 40 | 41 | ## Credit 42 | This project is inspired by [wong2/chat-gpt-google-extension](https://github.com/wong2/chat-gpt-google-extension) 43 | Special thanks to [ZohaibAhmed/ChatGPT-Google](https://github.com/ZohaibAhmed/ChatGPT-Google) for developing the unoffical chatGPT API (https://github.com/ZohaibAhmed/chatgpt-api) 44 | 45 | ## Disclaimer 46 | This is a fun side project to explore the cababilities of chatGPT. Its support is dependant on how long chatGPT has free access. -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chinmaykhamkar/chat-gpt-stackoverflow/6faa1200cb360622a13788b753d7fb2171f173a5/screenshot.png -------------------------------------------------------------------------------- /src/background/fetch-sse.mjs: -------------------------------------------------------------------------------- 1 | import { createParser } from "eventsource-parser"; 2 | import { streamAsyncIterable } from "./stream-async-iterable.mjs"; 3 | 4 | export async function fetchSSE(resource, options) { 5 | const { onMessage, ...fetchOptions } = options; 6 | const resp = await fetch(resource, fetchOptions); 7 | const parser = createParser((event) => { 8 | if (event.type === "event") { 9 | onMessage(event.data); 10 | } 11 | }); 12 | for await (const chunk of streamAsyncIterable(resp.body)) { 13 | const str = new TextDecoder().decode(chunk); 14 | parser.feed(str); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/background/index.mjs: -------------------------------------------------------------------------------- 1 | import ExpiryMap from "expiry-map"; 2 | import { v4 as uuidv4 } from "uuid"; 3 | import Browser from "webextension-polyfill"; 4 | import { fetchSSE } from "./fetch-sse.mjs"; 5 | 6 | const KEY_ACCESS_TOKEN = "accessToken"; 7 | 8 | const cache = new ExpiryMap(10 * 1000); 9 | 10 | async function getAccessToken() { 11 | if (cache.get(KEY_ACCESS_TOKEN)) { 12 | return cache.get(KEY_ACCESS_TOKEN); 13 | } 14 | const resp = await fetch("https://chat.openai.com/api/auth/session") 15 | .then((r) => r.json()) 16 | .catch(() => ({})); 17 | if (!resp.accessToken) { 18 | throw new Error("UNAUTHORIZED"); 19 | } 20 | cache.set(KEY_ACCESS_TOKEN, resp.accessToken); 21 | return resp.accessToken; 22 | } 23 | 24 | async function getAnswer(question, callback) { 25 | const accessToken = await getAccessToken(); 26 | await fetchSSE("https://chat.openai.com/backend-api/conversation", { 27 | method: "POST", 28 | headers: { 29 | "Content-Type": "application/json", 30 | Authorization: `Bearer ${accessToken}`, 31 | }, 32 | body: JSON.stringify({ 33 | action: "next", 34 | messages: [ 35 | { 36 | id: uuidv4(), 37 | role: "user", 38 | content: { 39 | content_type: "text", 40 | parts: [question], 41 | }, 42 | }, 43 | ], 44 | model: "text-davinci-002-render", 45 | parent_message_id: uuidv4(), 46 | }), 47 | onMessage(message) { 48 | console.debug("sse message", message); 49 | if (message === "[DONE]") { 50 | return; 51 | } 52 | const data = JSON.parse(message); 53 | const text = data.message?.content?.parts?.[0]; 54 | if (text) { 55 | callback(text); 56 | } 57 | }, 58 | }); 59 | } 60 | 61 | Browser.runtime.onConnect.addListener((port) => { 62 | port.onMessage.addListener(async (msg) => { 63 | console.debug("received msg", msg); 64 | try { 65 | await getAnswer(msg.question, (answer) => { 66 | port.postMessage({ answer }); 67 | }); 68 | } catch (err) { 69 | console.error(err); 70 | port.postMessage({ error: err.message }); 71 | cache.delete(KEY_ACCESS_TOKEN); 72 | } 73 | }); 74 | }); 75 | -------------------------------------------------------------------------------- /src/background/stream-async-iterable.mjs: -------------------------------------------------------------------------------- 1 | export async function* streamAsyncIterable(stream) { 2 | const reader = stream.getReader(); 3 | try { 4 | while (true) { 5 | const { done, value } = await reader.read(); 6 | if (done) { 7 | return; 8 | } 9 | yield value; 10 | } 11 | } finally { 12 | reader.releaseLock(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/content-script/index.mjs: -------------------------------------------------------------------------------- 1 | import MarkdownIt from "markdown-it"; 2 | import Browser from "webextension-polyfill"; 3 | 4 | async function run(question) { 5 | const markdown = new MarkdownIt(); 6 | 7 | const container = document.createElement("div"); 8 | container.className = "chat-gpt-container"; 9 | container.innerHTML = '
Waiting for ChatGPT response...
'; 10 | 11 | var body = document.querySelector('body'); 12 | var contain = body.querySelector('container'); 13 | var content = body.querySelector('#content'); 14 | var innerContent = body.querySelector('.inner-content'); 15 | var sideBar = body.querySelector('#sidebar'); 16 | 17 | sideBar.prepend(container); 18 | 19 | // const siderbarContainer = document.getElementById("rhs"); 20 | // if (siderbarContainer) { 21 | // siderbarContainer.prepend(container); 22 | // } else { 23 | // container.classList.add("sidebar-free"); 24 | // document.getElementById("rcnt").appendChild(container); 25 | // } 26 | 27 | const port = Browser.runtime.connect(); 28 | port.onMessage.addListener(function (msg) { 29 | if (msg.answer) { 30 | container.innerHTML = 31 | 'ChatGPT:
'; 32 | container.querySelector("#answer").innerHTML = markdown.render(msg.answer); 33 | } else if (msg.error === "UNAUTHORIZED") { 34 | container.innerHTML = 35 | 'Please login at chat.openai.com first
'; 36 | } else { 37 | container.innerHTML = "Failed to load response from ChatGPT
"; 38 | } 39 | }); 40 | port.postMessage({ question }); 41 | } 42 | 43 | 44 | 45 | var question = document.getElementsByClassName('question-hyperlink')[0].innerHTML; 46 | 47 | 48 | console.log(question); 49 | 50 | // const searchInput = document.getElementsByName("q")[0]; 51 | if (question) { 52 | // only run on first page 53 | // const startParam = new URL(location.href).searchParams.get("start") || "0"; 54 | // if (startParam === "0") { 55 | run(question); 56 | // } 57 | } 58 | -------------------------------------------------------------------------------- /src/github-markdown.css: -------------------------------------------------------------------------------- 1 | @media (prefers-color-scheme: dark) { 2 | .markdown-body { 3 | color-scheme: dark; 4 | --color-prettylights-syntax-comment: #8b949e; 5 | --color-prettylights-syntax-constant: #79c0ff; 6 | --color-prettylights-syntax-entity: #d2a8ff; 7 | --color-prettylights-syntax-storage-modifier-import: #c9d1d9; 8 | --color-prettylights-syntax-entity-tag: #7ee787; 9 | --color-prettylights-syntax-keyword: #ff7b72; 10 | --color-prettylights-syntax-string: #a5d6ff; 11 | --color-prettylights-syntax-variable: #ffa657; 12 | --color-prettylights-syntax-brackethighlighter-unmatched: #f85149; 13 | --color-prettylights-syntax-invalid-illegal-text: #f0f6fc; 14 | --color-prettylights-syntax-invalid-illegal-bg: #8e1519; 15 | --color-prettylights-syntax-carriage-return-text: #f0f6fc; 16 | --color-prettylights-syntax-carriage-return-bg: #b62324; 17 | --color-prettylights-syntax-string-regexp: #7ee787; 18 | --color-prettylights-syntax-markup-list: #f2cc60; 19 | --color-prettylights-syntax-markup-heading: #1f6feb; 20 | --color-prettylights-syntax-markup-italic: #c9d1d9; 21 | --color-prettylights-syntax-markup-bold: #c9d1d9; 22 | --color-prettylights-syntax-markup-deleted-text: #ffdcd7; 23 | --color-prettylights-syntax-markup-deleted-bg: #67060c; 24 | --color-prettylights-syntax-markup-inserted-text: #aff5b4; 25 | --color-prettylights-syntax-markup-inserted-bg: #033a16; 26 | --color-prettylights-syntax-markup-changed-text: #ffdfb6; 27 | --color-prettylights-syntax-markup-changed-bg: #5a1e02; 28 | --color-prettylights-syntax-markup-ignored-text: #c9d1d9; 29 | --color-prettylights-syntax-markup-ignored-bg: #1158c7; 30 | --color-prettylights-syntax-meta-diff-range: #d2a8ff; 31 | --color-prettylights-syntax-brackethighlighter-angle: #8b949e; 32 | --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58; 33 | --color-prettylights-syntax-constant-other-reference-link: #a5d6ff; 34 | --color-fg-default: #c9d1d9; 35 | --color-fg-muted: #8b949e; 36 | --color-fg-subtle: #484f58; 37 | --color-canvas-default: #0d1117; 38 | --color-canvas-subtle: #161b22; 39 | --color-border-default: #30363d; 40 | --color-border-muted: #21262d; 41 | --color-neutral-muted: rgba(110,118,129,0.4); 42 | --color-accent-fg: #58a6ff; 43 | --color-accent-emphasis: #1f6feb; 44 | --color-attention-subtle: rgba(187,128,9,0.15); 45 | --color-danger-fg: #f85149; 46 | } 47 | } 48 | 49 | @media (prefers-color-scheme: light) { 50 | .markdown-body { 51 | color-scheme: light; 52 | --color-prettylights-syntax-comment: #6e7781; 53 | --color-prettylights-syntax-constant: #0550ae; 54 | --color-prettylights-syntax-entity: #8250df; 55 | --color-prettylights-syntax-storage-modifier-import: #24292f; 56 | --color-prettylights-syntax-entity-tag: #116329; 57 | --color-prettylights-syntax-keyword: #cf222e; 58 | --color-prettylights-syntax-string: #0a3069; 59 | --color-prettylights-syntax-variable: #953800; 60 | --color-prettylights-syntax-brackethighlighter-unmatched: #82071e; 61 | --color-prettylights-syntax-invalid-illegal-text: #f6f8fa; 62 | --color-prettylights-syntax-invalid-illegal-bg: #82071e; 63 | --color-prettylights-syntax-carriage-return-text: #f6f8fa; 64 | --color-prettylights-syntax-carriage-return-bg: #cf222e; 65 | --color-prettylights-syntax-string-regexp: #116329; 66 | --color-prettylights-syntax-markup-list: #3b2300; 67 | --color-prettylights-syntax-markup-heading: #0550ae; 68 | --color-prettylights-syntax-markup-italic: #24292f; 69 | --color-prettylights-syntax-markup-bold: #24292f; 70 | --color-prettylights-syntax-markup-deleted-text: #82071e; 71 | --color-prettylights-syntax-markup-deleted-bg: #FFEBE9; 72 | --color-prettylights-syntax-markup-inserted-text: #116329; 73 | --color-prettylights-syntax-markup-inserted-bg: #dafbe1; 74 | --color-prettylights-syntax-markup-changed-text: #953800; 75 | --color-prettylights-syntax-markup-changed-bg: #ffd8b5; 76 | --color-prettylights-syntax-markup-ignored-text: #eaeef2; 77 | --color-prettylights-syntax-markup-ignored-bg: #0550ae; 78 | --color-prettylights-syntax-meta-diff-range: #8250df; 79 | --color-prettylights-syntax-brackethighlighter-angle: #57606a; 80 | --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f; 81 | --color-prettylights-syntax-constant-other-reference-link: #0a3069; 82 | --color-fg-default: #24292f; 83 | --color-fg-muted: #57606a; 84 | --color-fg-subtle: #6e7781; 85 | --color-canvas-default: #ffffff; 86 | --color-canvas-subtle: #f6f8fa; 87 | --color-border-default: #d0d7de; 88 | --color-border-muted: hsla(210,18%,87%,1); 89 | --color-neutral-muted: rgba(175,184,193,0.2); 90 | --color-accent-fg: #0969da; 91 | --color-accent-emphasis: #0969da; 92 | --color-attention-subtle: #fff8c5; 93 | --color-danger-fg: #cf222e; 94 | } 95 | } 96 | 97 | .markdown-body { 98 | -ms-text-size-adjust: 100%; 99 | -webkit-text-size-adjust: 100%; 100 | margin: 0; 101 | color: var(--color-fg-default); 102 | background-color: var(--color-canvas-default); 103 | font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"; 104 | font-size: 16px; 105 | line-height: 1.5; 106 | word-wrap: break-word; 107 | } 108 | 109 | .markdown-body .octicon { 110 | display: inline-block; 111 | fill: currentColor; 112 | vertical-align: text-bottom; 113 | } 114 | 115 | .markdown-body h1:hover .anchor .octicon-link:before, 116 | .markdown-body h2:hover .anchor .octicon-link:before, 117 | .markdown-body h3:hover .anchor .octicon-link:before, 118 | .markdown-body h4:hover .anchor .octicon-link:before, 119 | .markdown-body h5:hover .anchor .octicon-link:before, 120 | .markdown-body h6:hover .anchor .octicon-link:before { 121 | width: 16px; 122 | height: 16px; 123 | content: ' '; 124 | display: inline-block; 125 | background-color: currentColor; 126 | -webkit-mask-image: url("data:image/svg+xml,"); 127 | mask-image: url("data:image/svg+xml,"); 128 | } 129 | 130 | .markdown-body details, 131 | .markdown-body figcaption, 132 | .markdown-body figure { 133 | display: block; 134 | } 135 | 136 | .markdown-body summary { 137 | display: list-item; 138 | } 139 | 140 | .markdown-body [hidden] { 141 | display: none !important; 142 | } 143 | 144 | .markdown-body a { 145 | background-color: transparent; 146 | color: var(--color-accent-fg); 147 | text-decoration: none; 148 | } 149 | 150 | .markdown-body a:active, 151 | .markdown-body a:hover { 152 | outline-width: 0; 153 | } 154 | 155 | .markdown-body abbr[title] { 156 | border-bottom: none; 157 | text-decoration: underline dotted; 158 | } 159 | 160 | .markdown-body b, 161 | .markdown-body strong { 162 | font-weight: 600; 163 | } 164 | 165 | .markdown-body dfn { 166 | font-style: italic; 167 | } 168 | 169 | .markdown-body h1 { 170 | margin: .67em 0; 171 | font-weight: 600; 172 | padding-bottom: .3em; 173 | font-size: 2em; 174 | border-bottom: 1px solid var(--color-border-muted); 175 | } 176 | 177 | .markdown-body mark { 178 | background-color: var(--color-attention-subtle); 179 | color: var(--color-text-primary); 180 | } 181 | 182 | .markdown-body small { 183 | font-size: 90%; 184 | } 185 | 186 | .markdown-body sub, 187 | .markdown-body sup { 188 | font-size: 75%; 189 | line-height: 0; 190 | position: relative; 191 | vertical-align: baseline; 192 | } 193 | 194 | .markdown-body sub { 195 | bottom: -0.25em; 196 | } 197 | 198 | .markdown-body sup { 199 | top: -0.5em; 200 | } 201 | 202 | .markdown-body img { 203 | border-style: none; 204 | max-width: 100%; 205 | box-sizing: content-box; 206 | background-color: var(--color-canvas-default); 207 | } 208 | 209 | .markdown-body code, 210 | .markdown-body kbd, 211 | .markdown-body pre, 212 | .markdown-body samp { 213 | font-family: monospace,monospace; 214 | font-size: 1em; 215 | } 216 | 217 | .markdown-body figure { 218 | margin: 1em 40px; 219 | } 220 | 221 | .markdown-body hr { 222 | box-sizing: content-box; 223 | overflow: hidden; 224 | background: transparent; 225 | border-bottom: 1px solid var(--color-border-muted); 226 | height: .25em; 227 | padding: 0; 228 | margin: 24px 0; 229 | background-color: var(--color-border-default); 230 | border: 0; 231 | } 232 | 233 | .markdown-body input { 234 | font: inherit; 235 | margin: 0; 236 | overflow: visible; 237 | font-family: inherit; 238 | font-size: inherit; 239 | line-height: inherit; 240 | } 241 | 242 | .markdown-body [type=button], 243 | .markdown-body [type=reset], 244 | .markdown-body [type=submit] { 245 | -webkit-appearance: button; 246 | } 247 | 248 | .markdown-body [type=button]::-moz-focus-inner, 249 | .markdown-body [type=reset]::-moz-focus-inner, 250 | .markdown-body [type=submit]::-moz-focus-inner { 251 | border-style: none; 252 | padding: 0; 253 | } 254 | 255 | .markdown-body [type=button]:-moz-focusring, 256 | .markdown-body [type=reset]:-moz-focusring, 257 | .markdown-body [type=submit]:-moz-focusring { 258 | outline: 1px dotted ButtonText; 259 | } 260 | 261 | .markdown-body [type=checkbox], 262 | .markdown-body [type=radio] { 263 | box-sizing: border-box; 264 | padding: 0; 265 | } 266 | 267 | .markdown-body [type=number]::-webkit-inner-spin-button, 268 | .markdown-body [type=number]::-webkit-outer-spin-button { 269 | height: auto; 270 | } 271 | 272 | .markdown-body [type=search] { 273 | -webkit-appearance: textfield; 274 | outline-offset: -2px; 275 | } 276 | 277 | .markdown-body [type=search]::-webkit-search-cancel-button, 278 | .markdown-body [type=search]::-webkit-search-decoration { 279 | -webkit-appearance: none; 280 | } 281 | 282 | .markdown-body ::-webkit-input-placeholder { 283 | color: inherit; 284 | opacity: .54; 285 | } 286 | 287 | .markdown-body ::-webkit-file-upload-button { 288 | -webkit-appearance: button; 289 | font: inherit; 290 | } 291 | 292 | .markdown-body a:hover { 293 | text-decoration: underline; 294 | } 295 | 296 | .markdown-body hr::before { 297 | display: table; 298 | content: ""; 299 | } 300 | 301 | .markdown-body hr::after { 302 | display: table; 303 | clear: both; 304 | content: ""; 305 | } 306 | 307 | .markdown-body table { 308 | border-spacing: 0; 309 | border-collapse: collapse; 310 | display: block; 311 | width: max-content; 312 | max-width: 100%; 313 | overflow: auto; 314 | } 315 | 316 | .markdown-body td, 317 | .markdown-body th { 318 | padding: 0; 319 | } 320 | 321 | .markdown-body details summary { 322 | cursor: pointer; 323 | } 324 | 325 | .markdown-body details:not([open])>*:not(summary) { 326 | display: none !important; 327 | } 328 | 329 | .markdown-body kbd { 330 | display: inline-block; 331 | padding: 3px 5px; 332 | font: 11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; 333 | line-height: 10px; 334 | color: var(--color-fg-default); 335 | vertical-align: middle; 336 | background-color: var(--color-canvas-subtle); 337 | border: solid 1px var(--color-neutral-muted); 338 | border-bottom-color: var(--color-neutral-muted); 339 | border-radius: 6px; 340 | box-shadow: inset 0 -1px 0 var(--color-neutral-muted); 341 | } 342 | 343 | .markdown-body h1, 344 | .markdown-body h2, 345 | .markdown-body h3, 346 | .markdown-body h4, 347 | .markdown-body h5, 348 | .markdown-body h6 { 349 | margin-top: 24px; 350 | margin-bottom: 16px; 351 | font-weight: 600; 352 | line-height: 1.25; 353 | } 354 | 355 | .markdown-body h2 { 356 | font-weight: 600; 357 | padding-bottom: .3em; 358 | font-size: 1.5em; 359 | border-bottom: 1px solid var(--color-border-muted); 360 | } 361 | 362 | .markdown-body h3 { 363 | font-weight: 600; 364 | font-size: 1.25em; 365 | } 366 | 367 | .markdown-body h4 { 368 | font-weight: 600; 369 | font-size: 1em; 370 | } 371 | 372 | .markdown-body h5 { 373 | font-weight: 600; 374 | font-size: .875em; 375 | } 376 | 377 | .markdown-body h6 { 378 | font-weight: 600; 379 | font-size: .85em; 380 | color: var(--color-fg-muted); 381 | } 382 | 383 | .markdown-body p { 384 | margin-top: 0; 385 | margin-bottom: 10px; 386 | } 387 | 388 | .markdown-body blockquote { 389 | margin: 0; 390 | padding: 0 1em; 391 | color: var(--color-fg-muted); 392 | border-left: .25em solid var(--color-border-default); 393 | } 394 | 395 | .markdown-body ul, 396 | .markdown-body ol { 397 | margin-top: 0; 398 | margin-bottom: 0; 399 | padding-left: 2em; 400 | } 401 | 402 | .markdown-body ol ol, 403 | .markdown-body ul ol { 404 | list-style-type: lower-roman; 405 | } 406 | 407 | .markdown-body ul ul ol, 408 | .markdown-body ul ol ol, 409 | .markdown-body ol ul ol, 410 | .markdown-body ol ol ol { 411 | list-style-type: lower-alpha; 412 | } 413 | 414 | .markdown-body dd { 415 | margin-left: 0; 416 | } 417 | 418 | .markdown-body tt, 419 | .markdown-body code { 420 | font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; 421 | font-size: 12px; 422 | } 423 | 424 | .markdown-body pre { 425 | margin-top: 0; 426 | margin-bottom: 0; 427 | font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; 428 | font-size: 12px; 429 | word-wrap: normal; 430 | } 431 | 432 | .markdown-body .octicon { 433 | display: inline-block; 434 | overflow: visible !important; 435 | vertical-align: text-bottom; 436 | fill: currentColor; 437 | } 438 | 439 | .markdown-body ::placeholder { 440 | color: var(--color-fg-subtle); 441 | opacity: 1; 442 | } 443 | 444 | .markdown-body input::-webkit-outer-spin-button, 445 | .markdown-body input::-webkit-inner-spin-button { 446 | margin: 0; 447 | -webkit-appearance: none; 448 | appearance: none; 449 | } 450 | 451 | .markdown-body .pl-c { 452 | color: var(--color-prettylights-syntax-comment); 453 | } 454 | 455 | .markdown-body .pl-c1, 456 | .markdown-body .pl-s .pl-v { 457 | color: var(--color-prettylights-syntax-constant); 458 | } 459 | 460 | .markdown-body .pl-e, 461 | .markdown-body .pl-en { 462 | color: var(--color-prettylights-syntax-entity); 463 | } 464 | 465 | .markdown-body .pl-smi, 466 | .markdown-body .pl-s .pl-s1 { 467 | color: var(--color-prettylights-syntax-storage-modifier-import); 468 | } 469 | 470 | .markdown-body .pl-ent { 471 | color: var(--color-prettylights-syntax-entity-tag); 472 | } 473 | 474 | .markdown-body .pl-k { 475 | color: var(--color-prettylights-syntax-keyword); 476 | } 477 | 478 | .markdown-body .pl-s, 479 | .markdown-body .pl-pds, 480 | .markdown-body .pl-s .pl-pse .pl-s1, 481 | .markdown-body .pl-sr, 482 | .markdown-body .pl-sr .pl-cce, 483 | .markdown-body .pl-sr .pl-sre, 484 | .markdown-body .pl-sr .pl-sra { 485 | color: var(--color-prettylights-syntax-string); 486 | } 487 | 488 | .markdown-body .pl-v, 489 | .markdown-body .pl-smw { 490 | color: var(--color-prettylights-syntax-variable); 491 | } 492 | 493 | .markdown-body .pl-bu { 494 | color: var(--color-prettylights-syntax-brackethighlighter-unmatched); 495 | } 496 | 497 | .markdown-body .pl-ii { 498 | color: var(--color-prettylights-syntax-invalid-illegal-text); 499 | background-color: var(--color-prettylights-syntax-invalid-illegal-bg); 500 | } 501 | 502 | .markdown-body .pl-c2 { 503 | color: var(--color-prettylights-syntax-carriage-return-text); 504 | background-color: var(--color-prettylights-syntax-carriage-return-bg); 505 | } 506 | 507 | .markdown-body .pl-sr .pl-cce { 508 | font-weight: bold; 509 | color: var(--color-prettylights-syntax-string-regexp); 510 | } 511 | 512 | .markdown-body .pl-ml { 513 | color: var(--color-prettylights-syntax-markup-list); 514 | } 515 | 516 | .markdown-body .pl-mh, 517 | .markdown-body .pl-mh .pl-en, 518 | .markdown-body .pl-ms { 519 | font-weight: bold; 520 | color: var(--color-prettylights-syntax-markup-heading); 521 | } 522 | 523 | .markdown-body .pl-mi { 524 | font-style: italic; 525 | color: var(--color-prettylights-syntax-markup-italic); 526 | } 527 | 528 | .markdown-body .pl-mb { 529 | font-weight: bold; 530 | color: var(--color-prettylights-syntax-markup-bold); 531 | } 532 | 533 | .markdown-body .pl-md { 534 | color: var(--color-prettylights-syntax-markup-deleted-text); 535 | background-color: var(--color-prettylights-syntax-markup-deleted-bg); 536 | } 537 | 538 | .markdown-body .pl-mi1 { 539 | color: var(--color-prettylights-syntax-markup-inserted-text); 540 | background-color: var(--color-prettylights-syntax-markup-inserted-bg); 541 | } 542 | 543 | .markdown-body .pl-mc { 544 | color: var(--color-prettylights-syntax-markup-changed-text); 545 | background-color: var(--color-prettylights-syntax-markup-changed-bg); 546 | } 547 | 548 | .markdown-body .pl-mi2 { 549 | color: var(--color-prettylights-syntax-markup-ignored-text); 550 | background-color: var(--color-prettylights-syntax-markup-ignored-bg); 551 | } 552 | 553 | .markdown-body .pl-mdr { 554 | font-weight: bold; 555 | color: var(--color-prettylights-syntax-meta-diff-range); 556 | } 557 | 558 | .markdown-body .pl-ba { 559 | color: var(--color-prettylights-syntax-brackethighlighter-angle); 560 | } 561 | 562 | .markdown-body .pl-sg { 563 | color: var(--color-prettylights-syntax-sublimelinter-gutter-mark); 564 | } 565 | 566 | .markdown-body .pl-corl { 567 | text-decoration: underline; 568 | color: var(--color-prettylights-syntax-constant-other-reference-link); 569 | } 570 | 571 | .markdown-body [data-catalyst] { 572 | display: block; 573 | } 574 | 575 | .markdown-body g-emoji { 576 | font-family: "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; 577 | font-size: 1em; 578 | font-style: normal !important; 579 | font-weight: 400; 580 | line-height: 1; 581 | vertical-align: -0.075em; 582 | } 583 | 584 | .markdown-body g-emoji img { 585 | width: 1em; 586 | height: 1em; 587 | } 588 | 589 | .markdown-body::before { 590 | display: table; 591 | content: ""; 592 | } 593 | 594 | .markdown-body::after { 595 | display: table; 596 | clear: both; 597 | content: ""; 598 | } 599 | 600 | .markdown-body>*:first-child { 601 | margin-top: 0 !important; 602 | } 603 | 604 | .markdown-body>*:last-child { 605 | margin-bottom: 0 !important; 606 | } 607 | 608 | .markdown-body a:not([href]) { 609 | color: inherit; 610 | text-decoration: none; 611 | } 612 | 613 | .markdown-body .absent { 614 | color: var(--color-danger-fg); 615 | } 616 | 617 | .markdown-body .anchor { 618 | float: left; 619 | padding-right: 4px; 620 | margin-left: -20px; 621 | line-height: 1; 622 | } 623 | 624 | .markdown-body .anchor:focus { 625 | outline: none; 626 | } 627 | 628 | .markdown-body p, 629 | .markdown-body blockquote, 630 | .markdown-body ul, 631 | .markdown-body ol, 632 | .markdown-body dl, 633 | .markdown-body table, 634 | .markdown-body pre, 635 | .markdown-body details { 636 | margin-top: 0; 637 | margin-bottom: 16px; 638 | } 639 | 640 | .markdown-body blockquote>:first-child { 641 | margin-top: 0; 642 | } 643 | 644 | .markdown-body blockquote>:last-child { 645 | margin-bottom: 0; 646 | } 647 | 648 | .markdown-body sup>a::before { 649 | content: "["; 650 | } 651 | 652 | .markdown-body sup>a::after { 653 | content: "]"; 654 | } 655 | 656 | .markdown-body h1 .octicon-link, 657 | .markdown-body h2 .octicon-link, 658 | .markdown-body h3 .octicon-link, 659 | .markdown-body h4 .octicon-link, 660 | .markdown-body h5 .octicon-link, 661 | .markdown-body h6 .octicon-link { 662 | color: var(--color-fg-default); 663 | vertical-align: middle; 664 | visibility: hidden; 665 | } 666 | 667 | .markdown-body h1:hover .anchor, 668 | .markdown-body h2:hover .anchor, 669 | .markdown-body h3:hover .anchor, 670 | .markdown-body h4:hover .anchor, 671 | .markdown-body h5:hover .anchor, 672 | .markdown-body h6:hover .anchor { 673 | text-decoration: none; 674 | } 675 | 676 | .markdown-body h1:hover .anchor .octicon-link, 677 | .markdown-body h2:hover .anchor .octicon-link, 678 | .markdown-body h3:hover .anchor .octicon-link, 679 | .markdown-body h4:hover .anchor .octicon-link, 680 | .markdown-body h5:hover .anchor .octicon-link, 681 | .markdown-body h6:hover .anchor .octicon-link { 682 | visibility: visible; 683 | } 684 | 685 | .markdown-body h1 tt, 686 | .markdown-body h1 code, 687 | .markdown-body h2 tt, 688 | .markdown-body h2 code, 689 | .markdown-body h3 tt, 690 | .markdown-body h3 code, 691 | .markdown-body h4 tt, 692 | .markdown-body h4 code, 693 | .markdown-body h5 tt, 694 | .markdown-body h5 code, 695 | .markdown-body h6 tt, 696 | .markdown-body h6 code { 697 | padding: 0 .2em; 698 | font-size: inherit; 699 | } 700 | 701 | .markdown-body ul.no-list, 702 | .markdown-body ol.no-list { 703 | padding: 0; 704 | list-style-type: none; 705 | } 706 | 707 | .markdown-body ol[type="1"] { 708 | list-style-type: decimal; 709 | } 710 | 711 | .markdown-body ol[type=a] { 712 | list-style-type: lower-alpha; 713 | } 714 | 715 | .markdown-body ol[type=i] { 716 | list-style-type: lower-roman; 717 | } 718 | 719 | .markdown-body div>ol:not([type]) { 720 | list-style-type: decimal; 721 | } 722 | 723 | .markdown-body ul ul, 724 | .markdown-body ul ol, 725 | .markdown-body ol ol, 726 | .markdown-body ol ul { 727 | margin-top: 0; 728 | margin-bottom: 0; 729 | } 730 | 731 | .markdown-body li>p { 732 | margin-top: 16px; 733 | } 734 | 735 | .markdown-body li+li { 736 | margin-top: .25em; 737 | } 738 | 739 | .markdown-body dl { 740 | padding: 0; 741 | } 742 | 743 | .markdown-body dl dt { 744 | padding: 0; 745 | margin-top: 16px; 746 | font-size: 1em; 747 | font-style: italic; 748 | font-weight: 600; 749 | } 750 | 751 | .markdown-body dl dd { 752 | padding: 0 16px; 753 | margin-bottom: 16px; 754 | } 755 | 756 | .markdown-body table th { 757 | font-weight: 600; 758 | } 759 | 760 | .markdown-body table th, 761 | .markdown-body table td { 762 | padding: 6px 13px; 763 | border: 1px solid var(--color-border-default); 764 | } 765 | 766 | .markdown-body table tr { 767 | background-color: var(--color-canvas-default); 768 | border-top: 1px solid var(--color-border-muted); 769 | } 770 | 771 | .markdown-body table tr:nth-child(2n) { 772 | background-color: var(--color-canvas-subtle); 773 | } 774 | 775 | .markdown-body table img { 776 | background-color: transparent; 777 | } 778 | 779 | .markdown-body img[align=right] { 780 | padding-left: 20px; 781 | } 782 | 783 | .markdown-body img[align=left] { 784 | padding-right: 20px; 785 | } 786 | 787 | .markdown-body .emoji { 788 | max-width: none; 789 | vertical-align: text-top; 790 | background-color: transparent; 791 | } 792 | 793 | .markdown-body span.frame { 794 | display: block; 795 | overflow: hidden; 796 | } 797 | 798 | .markdown-body span.frame>span { 799 | display: block; 800 | float: left; 801 | width: auto; 802 | padding: 7px; 803 | margin: 13px 0 0; 804 | overflow: hidden; 805 | border: 1px solid var(--color-border-default); 806 | } 807 | 808 | .markdown-body span.frame span img { 809 | display: block; 810 | float: left; 811 | } 812 | 813 | .markdown-body span.frame span span { 814 | display: block; 815 | padding: 5px 0 0; 816 | clear: both; 817 | color: var(--color-fg-default); 818 | } 819 | 820 | .markdown-body span.align-center { 821 | display: block; 822 | overflow: hidden; 823 | clear: both; 824 | } 825 | 826 | .markdown-body span.align-center>span { 827 | display: block; 828 | margin: 13px auto 0; 829 | overflow: hidden; 830 | text-align: center; 831 | } 832 | 833 | .markdown-body span.align-center span img { 834 | margin: 0 auto; 835 | text-align: center; 836 | } 837 | 838 | .markdown-body span.align-right { 839 | display: block; 840 | overflow: hidden; 841 | clear: both; 842 | } 843 | 844 | .markdown-body span.align-right>span { 845 | display: block; 846 | margin: 13px 0 0; 847 | overflow: hidden; 848 | text-align: right; 849 | } 850 | 851 | .markdown-body span.align-right span img { 852 | margin: 0; 853 | text-align: right; 854 | } 855 | 856 | .markdown-body span.float-left { 857 | display: block; 858 | float: left; 859 | margin-right: 13px; 860 | overflow: hidden; 861 | } 862 | 863 | .markdown-body span.float-left span { 864 | margin: 13px 0 0; 865 | } 866 | 867 | .markdown-body span.float-right { 868 | display: block; 869 | float: right; 870 | margin-left: 13px; 871 | overflow: hidden; 872 | } 873 | 874 | .markdown-body span.float-right>span { 875 | display: block; 876 | margin: 13px auto 0; 877 | overflow: hidden; 878 | text-align: right; 879 | } 880 | 881 | .markdown-body code, 882 | .markdown-body tt { 883 | padding: .2em .4em; 884 | margin: 0; 885 | font-size: 85%; 886 | background-color: var(--color-neutral-muted); 887 | border-radius: 6px; 888 | } 889 | 890 | .markdown-body code br, 891 | .markdown-body tt br { 892 | display: none; 893 | } 894 | 895 | .markdown-body del code { 896 | text-decoration: inherit; 897 | } 898 | 899 | .markdown-body pre code { 900 | font-size: 100%; 901 | } 902 | 903 | .markdown-body pre>code { 904 | padding: 0; 905 | margin: 0; 906 | word-break: normal; 907 | white-space: pre; 908 | background: transparent; 909 | border: 0; 910 | } 911 | 912 | .markdown-body .highlight { 913 | margin-bottom: 16px; 914 | } 915 | 916 | .markdown-body .highlight pre { 917 | margin-bottom: 0; 918 | word-break: normal; 919 | } 920 | 921 | .markdown-body .highlight pre, 922 | .markdown-body pre { 923 | padding: 16px; 924 | overflow: auto; 925 | font-size: 85%; 926 | line-height: 1.45; 927 | background-color: var(--color-canvas-subtle); 928 | border-radius: 6px; 929 | } 930 | 931 | .markdown-body pre code, 932 | .markdown-body pre tt { 933 | display: inline; 934 | max-width: auto; 935 | padding: 0; 936 | margin: 0; 937 | overflow: visible; 938 | line-height: inherit; 939 | word-wrap: normal; 940 | background-color: transparent; 941 | border: 0; 942 | } 943 | 944 | .markdown-body .csv-data td, 945 | .markdown-body .csv-data th { 946 | padding: 5px; 947 | overflow: hidden; 948 | font-size: 12px; 949 | line-height: 1; 950 | text-align: left; 951 | white-space: nowrap; 952 | } 953 | 954 | .markdown-body .csv-data .blob-num { 955 | padding: 10px 8px 9px; 956 | text-align: right; 957 | background: var(--color-canvas-default); 958 | border: 0; 959 | } 960 | 961 | .markdown-body .csv-data tr { 962 | border-top: 0; 963 | } 964 | 965 | .markdown-body .csv-data th { 966 | font-weight: 600; 967 | background: var(--color-canvas-subtle); 968 | border-top: 0; 969 | } 970 | 971 | .markdown-body .footnotes { 972 | font-size: 12px; 973 | color: var(--color-fg-muted); 974 | border-top: 1px solid var(--color-border-default); 975 | } 976 | 977 | .markdown-body .footnotes ol { 978 | padding-left: 16px; 979 | } 980 | 981 | .markdown-body .footnotes li { 982 | position: relative; 983 | } 984 | 985 | .markdown-body .footnotes li:target::before { 986 | position: absolute; 987 | top: -8px; 988 | right: -8px; 989 | bottom: -8px; 990 | left: -24px; 991 | pointer-events: none; 992 | content: ""; 993 | border: 2px solid var(--color-accent-emphasis); 994 | border-radius: 6px; 995 | } 996 | 997 | .markdown-body .footnotes li:target { 998 | color: var(--color-fg-default); 999 | } 1000 | 1001 | .markdown-body .footnotes .data-footnote-backref g-emoji { 1002 | font-family: monospace; 1003 | } 1004 | 1005 | .markdown-body .task-list-item { 1006 | list-style-type: none; 1007 | } 1008 | 1009 | .markdown-body .task-list-item label { 1010 | font-weight: 400; 1011 | } 1012 | 1013 | .markdown-body .task-list-item.enabled label { 1014 | cursor: pointer; 1015 | } 1016 | 1017 | .markdown-body .task-list-item+.task-list-item { 1018 | margin-top: 3px; 1019 | } 1020 | 1021 | .markdown-body .task-list-item .handle { 1022 | display: none; 1023 | } 1024 | 1025 | .markdown-body .task-list-item-checkbox { 1026 | margin: 0 .2em .25em -1.6em; 1027 | vertical-align: middle; 1028 | } 1029 | 1030 | .markdown-body .contains-task-list:dir(rtl) .task-list-item-checkbox { 1031 | margin: 0 -1.6em .25em .2em; 1032 | } 1033 | 1034 | .markdown-body ::-webkit-calendar-picker-indicator { 1035 | filter: invert(50%); 1036 | } 1037 | -------------------------------------------------------------------------------- /src/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chinmaykhamkar/chat-gpt-stackoverflow/6faa1200cb360622a13788b753d7fb2171f173a5/src/logo.png -------------------------------------------------------------------------------- /src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ChatGPT for stackoverflow", 3 | "description": "Display ChatGPT response alongside stackoverflow questions", 4 | "version": "1.1.0", 5 | "manifest_version": 3, 6 | "icons": { 7 | "16": "logo.png", 8 | "32": "logo.png", 9 | "48": "logo.png", 10 | "128": "logo.png" 11 | }, 12 | "host_permissions": ["https://*.openai.com/"], 13 | "background": { 14 | "service_worker": "background.js" 15 | }, 16 | "content_scripts": [ 17 | { 18 | "matches": ["https://stackoverflow.com/questions/*"], 19 | "js": ["content-script.js"], 20 | "css": ["github-markdown.css", "styles.css"] 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /src/manifest.v2.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ChatGPT for stackoverflow", 3 | "description": "Display ChatGPT response alongside stackoverflow questions", 4 | "version": "1.1.0", 5 | "manifest_version": 2, 6 | "icons": { 7 | "16": "logo.png", 8 | "32": "logo.png", 9 | "48": "logo.png", 10 | "128": "logo.png" 11 | }, 12 | "permissions": ["webRequest", "https://*.openai.com/"], 13 | "background": { 14 | "scripts": ["background.js"] 15 | }, 16 | "content_scripts": [ 17 | { 18 | "matches": ["https://stackoverflow.com/questions/*"], 19 | 20 | "js": ["content-script.js"], 21 | "css": ["github-markdown.css", "styles.css"] 22 | } 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /src/styles.css: -------------------------------------------------------------------------------- 1 | .chat-gpt-container { 2 | margin-bottom: 30px; 3 | border-radius: 8px; 4 | border: 1px solid #dadce0; 5 | padding: 15px; 6 | flex-basis: 0; 7 | flex-grow: 1; 8 | } 9 | 10 | .chat-gpt-container p { 11 | margin: 0; 12 | } 13 | 14 | .chat-gpt-container .prefix { 15 | font-weight: bold; 16 | margin-bottom: 10px; 17 | } 18 | 19 | .chat-gpt-container .loading { 20 | color: #b6b8ba; 21 | animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; 22 | } 23 | 24 | @keyframes pulse { 25 | 0%, 26 | 100% { 27 | opacity: 1; 28 | } 29 | 50% { 30 | opacity: 0.5; 31 | } 32 | } 33 | 34 | .chat-gpt-container.sidebar-free { 35 | margin-left: 60px; 36 | height: fit-content; 37 | } 38 | 39 | .chat-gpt-container #answer { 40 | font-size: 15px; 41 | line-height: 1.6; 42 | } 43 | 44 | .chat-gpt-container #answer pre { 45 | margin-top: 10px; 46 | } 47 | 48 | .chat-gpt-container #answer code { 49 | white-space: pre-wrap; 50 | word-break: break-all; 51 | } 52 | --------------------------------------------------------------------------------